我有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