我只是检查有关连接超时堆栈溢出的其他职位,但看起来使用MySQL连接超时
com.CommandTimeout = int.MaxValue;
和
dbaccess.ServerAddress = "Server=mysql;Database=MyDB;Connect Timeout=2147483;Uid=username;Pwd=mypassword";
不幸的是像其他人固定它,我仍然得到这个错误40秒后的消息:
在操作或服务器完成之前已经过去的超时时间不是响应G。
你可以看看这两个截图。
MySQL Workbench工作正常,并且执行相同的查询需要48秒。
我不能使用的限制,以减少收购,因为我集中在不同的表中的信息分割的子集。存储过程不能使用,因为信息也存储在不同的mysql服务器中。
任何反馈将不胜感激。
费尔南多
编辑:
这是代码。我发布了图像来显示执行时间,而不是错误消息。
public DataSet ExecuteQuery(string[] Query, TableMap[] TableMappings)
{
//Mysql vars
MySqlConnection con;
MySqlCommand com;
MySqlDataAdapter adapter;
DataSet ds;
con = new MySqlConnection();
con.ConnectionString = _serveraddress;
con.Open();
com = con.CreateCommand();
com.CommandType = System.Data.CommandType.Text;
foreach (string st in Query)
{
com.CommandText = com.CommandText + st;
}
com.CommandTimeout = int.MaxValue;
adapter = new MySqlDataAdapter(com.CommandText, con);
foreach (TableMap tm in TableMappings)
{
adapter.TableMappings.Add(tm.SourceTable, tm.TableSet);
}
ds = new DataSet();
adapter.Fill(ds);
return ds;
}
请在实例化dbaccess背后直到打开连接时显示完整代码。 – C4u
如果将'int.MaxValue'更改为5000,会发生什么情况? –
@SimonPrice同样的错误:( –