模块化编程是一种正确的方法,但它有时会导致需要额外努力和研究的问题。我有三个数据库插入函数,比如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();
    }
}

但上面的解决方案与我的模块化方法背道而驰。是否可以将多个函数绑定到一个sql事务而不合并它们,如果不能,这是实现此目的的最佳方法。

最佳答案

只需将cnsqlTransaction传入函数,然后让函数使用传入参数,而不是打开它们自己的连接。

09-28 00:06