这个错误信息意味着当前的 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);
    }
}
SQL 错误:'SqlTransaction 已完成;它再也无法使用' 的解决方法

原文地址: https://www.cveoy.top/t/topic/oYKc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录