如何在C#中使用DataAdapter和存储过程对数据访问进行事务控制?

如何在C#中使用DataAdapter和存储过程对数据访问进行事务控制?,c#,dataadapter,C#,Dataadapter,如何在C#中使用DataAdapter和存储过程对数据访问进行事务控制?目前我想通过DataAdapter执行2个存储过程调用,但我想对其进行事务控制。有什么方法可以做到这一点吗?首选的方法是使用事务作用域来处理这一点。只需在调用两个存储过程调用的代码体周围加上一个新的: 在同一连接上发生的对数据库的任何调用都将自动合并到单个事务中。您还可以通过可选参数指定事务范围内的代码是应登记在现有事务中,还是应启动自己的事务 这是将调用组合到单个事务中的首选方式。方法是通过调用-performing yo

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

首选的方法是使用事务作用域来处理这一点。只需在调用两个存储过程调用的代码体周围加上一个新的:

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


这是将调用组合到单个事务中的首选方式。方法是通过调用-performing your work,然后调用
tran.Commit()
手动获取DBTransaction。这样做的首选方法是使用事务作用域为您处理此问题。只需在调用这两个存储过程调用的代码体周围添加一个新的:

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


这是将调用组合到单个事务中的首选方式。最简单的方法是通过调用-执行您的工作,然后调用
tran.Commit()

手动获取一个DBTransaction。我相信最简单的方法是将两个调用都包装在TransactionScope中。请参见本页上的示例:


我认为最简单的方法是将两个调用都封装在TransactionScope中。请参见本页上的示例:

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