使用mysql执行命令时发生致命错误

qhhrdooz  于 2021-06-23  发布在  Mysql
关注(0)|答案(0)|浏览(284)

我尝试在mysql数据库中插入数据,使用c#作为前端。查询在windows服务应用程序中运行,整个执行在线程上运行。在执行服务几个小时后,我遇到了一个错误。这项服务每隔10分钟运行一次。假设它在早上6:00执行,那么它将在早上6:10再次执行,这样它就按顺序移动。在每次运行中,它在数据库中插入大约50行。
下面给出了执行几个小时后抛出的错误。这是我的错误日志中的一个示例。
insertdata中的mysqlexception在命令执行期间遇到致命错误。::在mysql.data.mysqlclient.mysqlcommand.executereader(commandbehavior behavior)在mysql.data.mysqlclient.schemaprovider.getprocedures(string[]限制)在mysql.data.mysqlclient.isschemaprovider.getprocedures(string[]限制)位于mysql.data.mysqlclient.isschemaprovider.getschemainternal(string collection,string[]限制)位于mysql.data.mysqlclient.schemaprovider.getschema(string collection,string[]限制)位于mysql.data.mysqlclient.mysqlconnection.getschema(string collectionname,在mysql.data.mysqlclient.procedurecache.getprocdata(mysqlconnection connection,string spname)在mysql.data.mysqlclient.procedurecache.addnew(mysqlconnection connection,string spname)在mysql.data.mysqlclient.procedurecache.getprocedure(mysqlconnection conn,在mysql.data.mysqlclient.storedprocedure.getparameters(string procname)在mysql.data.mysqlclient.storedprocedure.resolve(boolean preparing)在mysql.data.mysqlclient.mysqlcommand.executereader(commandbehavior behavior)在mysql.data.mysqlclient.mysqlcommand.executenonquery()在insertdata(string name,string info,字符串输出)::内部异常1:尝试读取结果集时遇到致命错误。::内部异常2:读取流失败。::内部异常3:无法从传输连接中读取数据:对wsacancelblockingcall的调用中断了阻塞操作。::内部异常4:执行了阻塞操作被wsacancelblockingcall的呼叫中断]
我在日志中添加了多达四个级别的内部异常,以便可以显示一些线索。内部异常begin有标题inner exception 1、inner exception 2等。
下面是我的代码。

internal static int UpdateDataInToDB(DataInformation info)
{
    MySqlCommand mySqlCommand = new MySqlCommand("ProcInsertData", mySqlCon);
    try
    {
        int rowCount = 0;

        mySqlCommand.CommandType = CommandType.StoredProcedure;
        mySqlCommand.Parameters.Add("@Param1", DbType.Int64).Value = info.ID;
        mySqlCommand.Parameters.Add("@Param2", DbType.String).Value = info.Name;
        mySqlCommand.Parameters.Add("@Param3", DbType.String).Value = info.Address;
        mySqlCommand.Parameters.Add("@Param4", DbType.Int32).Value = info.Age;
        mySqlCommand.Parameters.Add("@Param5", DbType.DateTime).Value = info.DOB;
        mySqlCommand.Parameters.Add("@Param6", DbType.Int32).Value = info.RollNo;

        mySqlCommand.CommandTimeout = 120;
        rowCount = Convert.ToInt32(mySqlCommand.ExecuteNonQuery());

    }
    catch (MySqlException ex)
    {
        //MySqlException logging
        ResetDBConnection();
    }
    catch (Exception ex)
    {
        //Exception logging
    }
    finally
    {
        if (mySqlCommand != null) mySqlCommand.Dispose();
        mySqlCon.CloseConnection();
    }

return rowCount;
}

我的代码中没有使用任何datareader,但是我不知道这个executereader在哪里显示代码抛出的错误文本。我在连接字符串中设置了“pooling=false”。
任何帮助都将不胜感激。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题