多方法上的单个sql事务

Hot*_*tud 3 c# sql database sqltransaction

模块化编程是正确的方法,但它有时会导致需要额外努力和研究的问题.我有三个数据库插入函数,比如InsertName(),InsertAddress(),InsertPhoneNo()以它为例.如果在任何函数中发生异常,则必须执行所有这些函数,不会对数据库进行任何更改.

我能做的就是合并所有三合一并使用sqltransaction.

InsertDetails()
{
using (SqlTransaction sqlTransaction = cn.BeginTransaction()) 
    {
      using (SqlCommand cm = new SqlCommand()) 
      {
        cm.Transaction = sqlTransaction;
        InsertName();//Code to insert name   
        Insertaddress();//code to insert address
        InsertPhoneNo();//code to insert phone no
      }
      sqlTransaction.Commit();
    }
}
Run Code Online (Sandbox Code Playgroud)

但上面的解决方案违背了我的模块化方法.是否可以将多个函数绑定到一个sql事务而不合并它们,如果不是哪种方法可以实现这一点.

Sco*_*ain 5

只需传入cn和传入sqlTransaction函数,然后让函数使用传入的参数,而不是打开自己的连接.