天天看點

asp.net 事物的處理

使用ADO.Net 實作,使用這種方式的優點是可以在中間層來管理事務,當然你也可以選擇在資料層來實作。

SqlConnection 和OleDbConnection    對象有一個 BeginTransaction 方法,它可以傳回 SqlTransaction

或者OleDbTransaction 對象。而且這個對象有 Commit 和 Rollback 方法來管理事務

     SqlConnection sqlConnection = new SqlConnection("workstation id=WEIXIAOPING;packet size=4096;user id=sa;initial catalog=Northwind;persist security info=False");

     sqlConnection.Open();

     SqlTransaction    myTrans = sqlConnection.BeginTransaction();

     SqlCommand sqlInsertCommand = new SqlCommand();

     sqlInsertCommand.Connection = sqlConnection

     sqlInsertCommand.Transaction=myTrans;

     try{

         sqlInsertCommand.CommandText="insert into tbTree(Context,ParentID) values('北京',1)";

         sqlInsertCommand.ExecuteNonQuery();

         sqlInsertCommand.CommandText="insert into tbTree(Context,ParentID) values('上海',1)";

         sqlInsertCommand.ExecuteNonQuery();

         myTrans.Commit();

       }catch(Exception ex)

       {

        myTrans.Rollback();

       }

      finally

      {

       sqlConnection.Close();

      }

優點:

       簡單性

       和資料據事務差不多的快

       獨立于資料庫,不同資料庫的專有代碼被隐藏了

缺點:

       事務不能跨越多個資料庫連接配接

       事務執行在資料庫連接配接層上,是以需要在事務過程中維護一個資料庫連接配接

       ADO.Net分布事務也可以跨越多個資料庫,但是其中一個SQL SERVER 資料庫的話,通過用SQL SERVER連接配接伺服器連接配接到别的資料庫,但是如果是在DB2和Orcal之間就不可以。