sqlsguar 此 SqlTransaction 已完成;它再也无法使用。
这个错误信息意味着当前的 SqlTransaction 已经被提交或者回滚,不能再次使用。这通常发生在你试图使用已经完成的 SqlTransaction 对象时。
为了解决这个问题,你需要创建一个新的 SqlTransaction 对象来代替已完成的事务。或者,你可以检查你的代码,确保在使用 SqlTransaction 对象之前,它没有被提交或者回滚。
以下是一个正确使用 SqlTransaction 对象的示例:
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlTransaction transaction = connection.BeginTransaction();
try
{
// 在事务中执行 SQL 命令
SqlCommand command1 = new SqlCommand("INSERT INTO Table1 (Column1) VALUES (@value)", connection, transaction);
command1.Parameters.AddWithValue("@value", "SomeValue");
command1.ExecuteNonQuery();
SqlCommand command2 = new SqlCommand("UPDATE Table2 SET Column2 = @value WHERE Column1 = @key", connection, transaction);
command2.Parameters.AddWithValue("@value", "AnotherValue");
command2.Parameters.AddWithValue("@key", "SomeKey");
command2.ExecuteNonQuery();
// 提交事务
transaction.Commit();
}
catch (Exception ex)
{
// 回滚事务并记录错误
transaction.Rollback();
Console.WriteLine("Error: " + ex.Message);
}
}
``
原文地址: http://www.cveoy.top/t/topic/hvSM 著作权归作者所有。请勿转载和采集!