C#中如何手动回滚事务?
时间: 2024-11-22 17:39:07 浏览: 4
C#编程之事务用法
在C#中,如果你使用的是ADO.NET的`SqlTransaction`或`DbTransaction`来管理数据库事务,手动回滚事务通常会通过调用`Rollback()`方法完成。这个方法在发生错误或你需要取消正在进行的事务时使用。
这里是一个示例:
```csharp
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlTransaction transaction = connection.BeginTransaction();
try
{
// 执行一些SQL操作
SqlCommand command = new SqlCommand("UPDATE table SET column = value", connection, transaction);
command.ExecuteNonQuery();
if (/* 某个条件导致你想回滚 */)
{
transaction.Rollback(); // 回滚事务
}
else
{
transaction.Commit(); // 提交事务
}
}
catch (Exception ex)
{
transaction.Rollback(); // 异常时也回滚
Console.WriteLine($"交易失败: {ex.Message}");
}
}
```
在`try-catch`块中,如果在执行SQL操作期间遇到异常,你会选择回滚事务,避免数据部分更新。如果没有异常,`Commit()`方法用于正式提交事务。
阅读全文