在数据库中开始一个事务。
2005-03-15 10:39
295 查看
下面的示例创建一个 OracleConnection 和一个 OracleTransaction。它演示了如何使用 BeginTransaction、Commit 和 Rollback 方法。
public void RunOracleTransaction(string myConnString)
{
OracleConnection myConnection = new OracleConnection(myConnString);
myConnection.Open();
OracleCommand myCommand = myConnection.CreateCommand();
OracleTransaction myTrans;
// Start a local transaction
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.CommandType= CommandType.StoredProcedure;
myCommand.CommandText="prc_test";
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();
}
}
public void RunOracleTransaction(string myConnString)
{
OracleConnection myConnection = new OracleConnection(myConnString);
myConnection.Open();
OracleCommand myCommand = myConnection.CreateCommand();
OracleTransaction myTrans;
// Start a local transaction
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.CommandType= CommandType.StoredProcedure;
myCommand.CommandText="prc_test";
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();
}
}
相关文章推荐
- 关于脏数据比如说,有两个用户A,B同时操作数据库,A开始了一个事务,修改了某行,但还未提交,这个时
- C#.NET执行Oracle DBLink关于“ORA-02041: 客户数据库未开始一个事务处理”
- oracle分布式处理时报“ORA-02041: 客户数据库未开始一个事务处理”解决办法 - z
- 关于“ORA-02041: 客户数据库未开始一个事务处理”
- 在数据库中开始一个事务
- ORA-02041: 客户数据库未开始一个事务处理 .NET 连接低版本ORACLE时需要注意的问题
- 【翻译】从头开始写一个时间序列数据库-Writing a Time Series Database from Scratch
- 一个基于PDO的数据库操作类(新) 一个PDO事务实例
- 在一个事务中,hibernate的查询数据,不要在set值,比如:密码解密,否则会重新更新到数据库中
- 一个基于PDO的数据库操作类(新) + 一个PDO事务实例
- 88.Oracle数据库SQL开发之 修改表内存——数据库事务的开始和结束
- 一个Spring事务中,前后两次数据库操作的影响关系
- TransactionScope分布式事务,将两个数据库操作放在一个事务中
- 年近40的我又开始了写代码的工作,重新写了一个C++的数据库连接池的类,个人觉得挺方便的
- 最近碰到一个oracle“分布式事务处理已经开始”的问题
- 一个简单的跨域跨数据库事务处理架构
- [原创]一个可以操作多数据库服务器的事务方法
- 一个基于PDO的数据库操作类(新) 一个PDO事务实例
- 一个简单的跨域跨数据库事务处理架构
- 一个基于PDO的数据库操作类(新) 一个PDO事务实例