Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MYSQL connector.net连接在长时间后丢失_C#_Mysql_Connection_Connector - Fatal编程技术网

C# MYSQL connector.net连接在长时间后丢失

C# MYSQL connector.net连接在长时间后丢失,c#,mysql,connection,connector,C#,Mysql,Connection,Connector,我使用connector.net 6.7.4与远程服务器建立了mysql连接 像这样: public MySqlConnection conn; public MySqlCommand com; public onStart() { conn = new MySqlConnection("Server=xx.xx.xx.xx;Port=3306;Database=kbindb;Uid=collector; Pwd=xxx;"); conn.Open(); com = new

我使用connector.net 6.7.4与远程服务器建立了mysql连接

像这样:

public MySqlConnection conn;
public MySqlCommand com;

public onStart()
{
   conn = new MySqlConnection("Server=xx.xx.xx.xx;Port=3306;Database=kbindb;Uid=collector; Pwd=xxx;");
   conn.Open();
   com = new MySqlCommand("SELECT * FROM blabla;", conn);
   timer.Interval=1000;
   timer.Enabled=True;

}   

public onTimerTick(bla bla)
{
    // timer.Enabled=False;
     MySqlDataReader dr = com.ExecuteReader();
     while(dr.Read()){
            //blabla
      }
     dr.Close();
     //timer.Enabled=True;
 }
代码正在成功运行,但在1-2小时后锁定此行上的计时器:com.ExecuteReader(); 它不能用try-catch处理


我能做什么?

我不会让数据库的连接在您需要的时间之外保持打开状态。。当然不是几个小时。我想你会得到某种程度的超时

尝试在tick事件中创建连接,获取数据并处理连接。(以下代码中的
使用
语句将处理您的资源。)


谢谢你的建议。我为本地数据库成功地完成了这项工作。我不知道远程数据库有错。
public onStart()
{
   timer.Interval = 1000;

   timer.Enabled = true;
}   

public onTimerTick(...)
{
    timer.Enabled = false;

    using (var conn = new MySqlConnection("Server=xx.xx.xx.xx;Port=3306;Database=kbindb;Uid=collector; Pwd=xxx;"))
    {
        conn.Open();
        using (var com = new MySqlCommand("SELECT * FROM blabla;", conn))
        {
            var reader = com.ExecuteReader();

            while (dr.Read())
            {
                //blabla
            }
        }
    }

    timer.Enabled = true;
}