我在使用最新的 MySQL .Net 连接器时遇到了一个非常奇怪的问题。
以下代码:
MySqlCommand cmd = new MySqlCommand("UPDATE tst SET col1 = 'Test' WHERE id = 5", conn);
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
Console.WriteLine(conn.State.ToString());
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(conn.State.ToString());
}
如果我运行我的程序,我将得到以下输出/错误:
Open The connection must be valid and open Open
这怎么可能。你有什么想法吗?
最佳答案
官方上documentation对于 MySql
和 DevArt , 所有 MySqlCommand
都使用打开的连接进行初始化。我建议先打开连接,然后再初始化 MySqlCommand
。
if (!conn.State.Equals(ConnectionState.Open))
conn.Open();
Console.WriteLine(conn.State.ToString());
MySqlCommand cmd = new MySqlCommand("UPDATE tst SET col1 = 'Test' WHERE id = 5", conn);
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(conn.State.ToString());
}
关于c# - MySQL .Net 连接器连接已打开但已关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35771330/