1、 OracleTransaction類的概述(from msdn )
應用程序通過針對OracleConnection對象調用 BeginTransaction 來創建OracleTransaction對象。對OracleTransaction對象執行與該事務關聯的所有后續操作(例如提交或中止該事務)。
示例
OracleTransaction的成員主要有:
屬性:
Connection,指定與該事務關聯的OracleConnection對象;
IsolationLevel,指定該事務的IsolationLevel;枚舉類型,用於對事物的鎖定,取值有Chaos、ReadCommited、 ReadUncommited、RepeatableRead、Serializable、Unspecified。
方法:
Commit,提交SQL數據庫事務;
Rollback , 從掛起狀態回滾事務;
下面的示例創建一個 OracleConnection 和一個 OracleTransaction。它還演示了如何使用 BeginTransaction、Commit 和 Rollback 方法。
[C#]
public void RunOracleTransaction(string myConnString)
{
OracleConnection myConnection = new OracleConnection(myConnString);
myConnection.Open();
OracleCommand myCommand = myConnection.CreateCommand();
OracleTransaction myTrans;
OracleTransaction myTrans;
// Start a local transaction
myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted);
// Assign transaction object for a pending local transaction
myCommand.Transaction = myTrans;
myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted);
// Assign transaction object for a pending local transaction
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("Both records are written to database.");
}
catch(Exception e)
{
myTrans.Rollback();
Console.WriteLine(e.ToString());
Console.WriteLine("Neither record was written to database.");
}
finally
{
myConnection.Close();
}
}