C# MYSQL connector.net连接在长时间后丢失
我使用connector.net 6.7.4与远程服务器建立了mysql连接 像这样: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
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;
}