C#中使用事務

來源:互聯網
上載者:User

       Ado.net支援兩種事務模型,這在.Net Framework文檔中作為指南有定義.事務指南手冊介紹了通常應該知道的資料庫事務, 它影響操作單個目標資料庫.一個類通過由ado.net顯示描述的事務邊界使用事務類和方法能提供事務指南.在接下來的章節中,我將把重點放在事務指南上. 軟體

       可以使用 Connection 和 Transaction 對象啟動、提交和復原事務。下面的步驟用於執行事務。若要執行事務,請執行下列操作:
       調用 Connection 對象的 BeginTransaction 方法來標記事務的開始。BeginTransaction 方法返回對 Transaction 的引用。該引用將分配給登記在事務中的 Command 對象。
       將 Transaction 對象分配給要執行的 Command 的 Transaction 屬性。如果通過活動的 Transaction 對象對 Connection 執行Command,但該 Transaction 對象尚未分配給 Command 的 Transaction 屬性,則將引發異常。 執行所需的命令。

 

      自動事務也是可行的,為了使用類來參與事務來協調跨多個資料來源的改變.在這種情景下事務本身是在外層處理的,比如通過com 和 DTC. 需要瞭解更多自動事務的,可以參照相關自動事務.

      註:當沒有在你的代碼中指定事務行為時,你應該注意資料庫事務預設行為.比如,SQLServer 預設自動模式,每個事務-Sql 語句或成功或失敗.要瞭解哪種預設行為是希望得到的從你工作的資料來源中,能幫你決定你是否顯示定義事務,也可以對於你理解你的系統行為更有協助.

 

 

事務相關類總攬

 

Ado.net資料提供對象通過Connection,Command,和Transaction類來提供事務功能. 一個典型的事務過程類似以下:

 

1. 開啟事務通過Connetion.BeginTransaction()

2. 通過設定Command的Command.Transaction屬性,在事務中加入語句或預存程序.

3. 依靠提供者,選擇使用 Transaction.Save()或 Transaction.Begin()來建立savepoint或內嵌的事務來使能局部復原.

4. 提交或復原事務通過使用Transaction.Commit()或Transaction.Rollback()

 

    所有的資料提供者提供了同樣的基本結構來處理事務,開始串連的事務,加入指令,使用事務物件來提交或復原.

SqlServer事務

 

SqlServer資料提供對象提供事務的準系統情況見以下的類和成員:

 

Class

 

Member

 

Function

 

SqlConnection

 

Begin Transaction

 

Open  a  new  transaction.

 

 

SqlCommand

 

Transaction

 

 

Enlist  the  command  associated  with  the  object  in  an  open  transaction.

 

SqlTransaction

 

Save

 

Create  as a  vepoint  to  enable a  partial  rollback.

 

SqlTransaction

 

Rollback

 

Rollbackatransaction.

 

SqlTransaction

 

Commit

CommitaTransaction

http://www.mscto.com

 

 

SqlServer資料提供者( 對於SqlServer來說,OLEDBprovider也是如此) 不提供在代碼中建立內嵌事務的方式, 因此內嵌事務在SqlServer並不真正的被支援.因此這兒只有一種方式來開始一個事務在SqlClient中-使用SqlConnection.BeginTransaction().你不能在統一個串連中開啟另外一個事務,直到先前的事務被提交或復原,因此在任何時間每個串連只有一個開啟的事務.為了使用局部復原,使用SqlTransaction.Save().

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.