我有C# multi threading
應用程序和使用MySQL
單個連接到整個應用程序。但是,當兩個或多個線程試圖在同一時間訪問數據庫,然後我得到以下錯誤:C#MySQL連接池
已經沒有與此
Connection
必須先關閉相關聯的打開DataReader
。
我的連接代碼如下
public static _connectionSetup = new MySqlConnection("Server=server ; Database=database;User ID=user;Password=pass;Pooling=true;");
,當我需要使用連接我使用下面的代碼: -
using (MySqlConnection connection =_connectionSetup)
{
using (MySqlCommand command = new MySqlCommand("proc", connection))
{
....
}
}
我試圖用pooling=true
和我已創建兩個單獨的連接以及兩個不同的線程,但我仍然遇到以上錯誤。
我錯過了什麼嗎?
我該如何實現連接池,以便所有線程都將使用單獨的連接並且不會導致任何問題?
不要讓它變成靜態的,在'using'中創建連接,你就完成了。 http://stackoverflow.com/questions/9705637/executereader-requires-an-open-and-available-connection-the-connections-curren/9707060#9707060 – 2014-09-28 20:46:18
你不覺得創建連接所有的時間在使用會導致成本,因爲一次又一次地連接是非常昂貴的操作。 – 2014-09-29 19:28:48
編號請在上面的鏈接中閱讀我的答案,它會比我在評論中做的更好解釋它。 – 2014-09-29 19:33:57