c# - 使用 C# 更新 mySQL 表

标签 c# mysql

我已经编写了一些 C# 来更新 MySql 表,但每次调用方法 ExecuteNonQuery() 时都会出现异常。我在网上对此进行了研究,发现的每个解决方案都会产生相同的错误。我有一个打开的数据库连接,并且正确写入了对数据库的更新查询。到目前为止我想出的代码是:

public int executeUpdate()
{
  int result = 0;
  if (isConnected)
  {
    try
    {
      MySqlConnection cn = new  MySqlConnection(connection.ConnectionString);
      MySqlCommand cmd = new MySqlCommand();

      cmd.Connection = cn; 
      cmd.CommandText = "UPDATE test SET status_id = 1 WHERE test_id = 1";
      int numRowsUpdated = cmd.ExecuteNonQuery(); 
    }
    catch (MySqlException exSql)
    {
      Console.Error.WriteLine("Error - SafeMySql: SQL Exception: " + query);
      Console.Error.WriteLine(exSql.StackTrace);
    }
    catch (Exception ex)
    {
      Console.Error.WriteLine("Error - SafeMySql: Exception: " + query);
      Console.Error.WriteLine(ex.StackTrace);
    }
  }
  else
    Console.Error.WriteLine("Error - SafeMySql: executeQuery failed. Not connected to DB");
}

最佳答案

将您的尝试部分更改为以下代码:

try
{
    using(MySqlConnection cn = new  MySqlConnection(connection.ConnectionString))
    {        
        MySqlCommand cmd = new MySqlCommand();
        cmd.Connection = cn; 
        cmd.CommandText = "UPDATE test SET status_id = 1 WHERE test_id = 1";
        cn.Open();
        int numRowsUpdated = cmd.ExecuteNonQuery();
        cmd.Dispose(); 
     }
}

必须在执行命令之前打开连接。在上面的示例中,当您离开使用部分时,命令对象将立即被释放,连接对象将被隐含地关闭和释放。

关于c# - 使用 C# 更新 mySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10323498/

相关文章:

c# - 单元测试,模拟 - 简单案例 : Service - Repository

c# - 多个带有代理的 HttpClients,试图达到最大下载速度

MySQL 查询左连接、分组和排序非常慢

mysql - 映射通过 Ebean/Play 框架的问题

php - 在 SQL select 语句中将多个列值合并为单个值

c# - 类似Windows 8开始菜单的图像鼠标点击效果

c# - Microsoft IDisposable 模式真的正确吗?

php - mysql | mysql | Codeigniter Active Records 正在添加额外的反勾号以进行查询

c# - MySql SHOW VARIABLES 没有产生任何结果

c# - .NET 垃圾收集器的麻烦。 block 15-40 分钟