0
我正在写一个数据库类,使用c#与多线程sdk进行交互。我应该只使用一个连接(不需要说!)但是,我总是会收到有关连接和数据收集器的错误。帮助表示赞赏。c#mysqlreader多线程失败
这里是我的代码
static class Db
{
static MySqlConnection conn = new MySqlConnection(connectionString);
private static void Connect()
{
if (conn.State == ConnectionState.Closed)
conn.Open();
}
private static void DisConnect()
{
if (conn.State == ConnectionState.Open)
conn.Close();
}
static int Insert()
{
Connect();
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.ExecuteNonQuery();
return Convert.ToInt32(cmd.LastInsertedId);
DisConnect();
}
public static DataTable select(string sql) //Especially fails here
{
Connect();
MySqlCommand cmd = new MySqlCommand(sql, conn);
using (MySqlDataReader read = cmd.ExecuteReader())
{
if (read.HasRows){ Some Code... }
}
DisConnect();
}
}
什么是错误_exactly_? – 2015-01-21 07:49:53
1.复制内存时检测到可能的I/O争用情况,2.存在已打开的连接。 3.连接必须有效并打开。 – fatih 2015-01-21 07:53:44
为什么你用静态的东西?为每个线程提供一个实例? – 2015-01-21 07:56:39