我只是檢查有關連接超時堆棧溢出的其他職位,但看起來使用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同樣的錯誤:( –