1

如何在 C# 中使用 DataAdapter 和存储过程对数据访问进行事务控制?目前我想通过 DataAdapter 执行 2 个存储过程调用,但我想对其进行事务控制。有什么办法吗?

4

2 回答 2

3

这样做的首选方法是使用事务范围为您处理此问题。只需将调用两个存储过程调用的代码体都用一个 new 包围 TransactionScope

using(TransactionScope scope = new TransactionScope())
{
  // your ADO.NET code that calls sprocs ...
}

在同一连接上发生的任何对数据库的调用都将自动合并到一个事务中。TransactionScopeOption您还可以指定事务范围内的代码是否应加入现有事务或通过可选参数启动自己的事务 。

这是将调用组合成单个事务的首选方式。另一种方法是通过调用手动获取 DBTransaction Connection.BeginTransaction()- 执行您的工作,然后调用tran.Commit()

于 2010-09-27T15:07:21.663 回答
1

我相信最简单的方法是将两个调用都包装在 TransactionScope 中。请参阅此页面上的示例:

http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx

于 2010-09-27T15:08:33.533 回答