我正在开发使用MySql的MVC应用程序,问题是我收到错误too many connections
。这使我感到困惑,因为我将连接初始化程序包装在using
内,它应该自动处理它。
代码示例:
using(MySqlConnection con = new MySqlConnection(connString))
{
con.Open();
using(MySqlCommand cmd = new MySqlCommand(...))
{
...
}
}
它会导致我出现此错误的原因是什么?怎么办?
答案 0 :(得分:2)
using语句显式调用Dispose。并不是因为它使连接保持打开状态。默认情况下和设计合理地处置了它们。
尝试在连接字符串中添加“ Pooling = false”。或致电ClearPool()。
答案 1 :(得分:0)
我认为您使用using
忽略了con.Open()
语句。它将多次打开连接。
你可以试试吗,
using(MySqlConnection con = new MySqlConnection(connString))
{
using(MySqlCommand cmd = new MySqlCommand(...))
{
...
}
}
或,
using(MySqlConnection con = new MySqlConnection(connString)) // --> First connection opening here
{
con.Open(); // --> And second connection opening here.
using(MySqlCommand cmd = new MySqlCommand(...))
{
...
}
con.Close(); // --> Second is closing here
} // --> First one is closing here
答案 2 :(得分:0)
您需要检查连接状态,如果连接状态为打开,则将其关闭,然后将其打开。您已经建立连接时尝试创建新的连接。因此,您会遇到运行时连接错误。
if (con.State==ConnectionState.Open)
{
con.Close();
}
con.Open();