1、OracleTransaction
类的概述
应用程序通过针对OracleConnection
对象调用 BeginTransaction
来创建OracleTransaction
对象。对OracleTransaction
对象执行与该事务关联的所有后续操作(例如提交或中止该事务)。
示例
OracleTransaction
的成员主要有:
属性:
Connection
,指定与该事务关联的OracleConnection
对象;
IsolationLevel
,指定该事务的IsolationLevel
;枚举类型,用于对事物的锁定,取值有Chaos
、ReadCommited
、 ReadUncommited
、RepeatableRead
、Serializable
、Unspecified
。
方法:
Commit
,提交SQL数据库事务;
Rollback
, 从挂起状态回滚事务;
下面的示例创建一个 OracleConnection
和一个 OracleTransaction
。它还演示了如何使用 BeginTransaction
、Commit
和 Rollback
方法。
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();
}
}