c# - MySQL .Net 连接器连接已打开但已关闭

标签 c# mysql .net

我在使用最新的 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对于 MySqlDevArt , 所有 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/

相关文章:

c# - C# GridView 中的 DateTime 更新字段

c# - 如何在 Silverlight 中将 List<object> 绑定(bind)到 DataGrid?

c# - 即使只有一项,也会触发两项任务,使用 async/await 和 Task.WhenAll

c# - 阅读前修剪值

c# - 如何在负载平衡环境中获取 DNS 名称?

c# - 使用 C# 从 CSV 导出到 MySQL 失败

mysql - 如何在一列中搜索 3 个字母的单词 - MySQL?

c# - int 到字节数组

c# - 将 DateTime 转换为 long,反之亦然

mysql选择删除