我已经编写了一些 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/