C#中使用OracleTransaction

風靈使發表於2018-07-31

1、OracleTransaction類的概述

應用程式通過針對OracleConnection物件呼叫 BeginTransaction 來建立OracleTransaction物件。對OracleTransaction物件執行與該事務關聯的所有後續操作(例如提交或中止該事務)。

示例

OracleTransaction的成員主要有:
屬性:
Connection,指定與該事務關聯的OracleConnection物件;
IsolationLevel,指定該事務的IsolationLevel;列舉型別,用於對事物的鎖定,取值有ChaosReadCommitedReadUncommitedRepeatableReadSerializableUnspecified
方法:
Commit,提交SQL資料庫事務;
Rollback , 從掛起狀態回滾事務;

下面的示例建立一個 OracleConnection 和一個 OracleTransaction。它還演示瞭如何使用 BeginTransactionCommitRollback 方法。

public void RunOracleTransaction(string myConnString) 
{
    OracleConnection myConnection = new OracleConnection(myConnString);
    myConnection.Open();
    OracleCommand myCommand = myConnection.CreateCommand();
    OracleTransaction myTrans;
    //開啟本地事務
    myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted);
    //為掛起的本地事務分配事務物件
    myCommand.Transaction = myTrans;
    try 
    {
        myCommand.CommandText = "INSERT INTO Dept (DeptNo, Dname, Loc) values (50, 'TECHNOLOGY', 'DENVER')";
        myCommand.ExecuteNonQuery();
        myCommand.CommandText = "INSERT INTO Dept (DeptNo, Dname, Loc) values (60, 'ENGINEERING', 'KANSAS CITY')";
        myCommand.ExecuteNonQuery();
        myTrans.Commit();
        Console.WriteLine("兩條記錄都寫入資料庫.");
    }
    catch(Exception e) 
    {
        myTrans.Rollback();
        Console.WriteLine(e.ToString());
        Console.WriteLine("這兩條記錄都沒有寫入資料庫。");
    }
    finally 
    {
        myConnection.Close();
    }
}

相關文章