.net中数据库事务机制
2005-11-23 14:38
323 查看
在初始化SqlTransaction类时,你需要使用SqlConnection类的BeginTranscation()方法:
SqlTransaction myTran; myTran=myConn.BeginTransaction();
该方法返回一个SqlTransaction类型的变量。在调用BeginTransaction()方法以后,所有基于该数据连接对象的SQL语句执行动作都将被认为是事务MyTran的一部分。同时,你也可以在该方法的参数中指定事务隔离级别和事务名称,如:
SqlTransaction myTran;
myTran=myConn.BeginTransaction(IsolationLevel.ReadCommitted,"SampleTransaction");
程序实例:
1. SQL SERVER
SqlConnection myConn=GetConn();
myConn.Open();
SqlCommand myComm=new SqlCommand();
SqlTransaction myTran; //创建一个事务
myTran=myConn.BeginTransaction(); //注意,SqlTransaction类无公开的构造函数
//从此开始,基于该连接的数据操作都被认为是事务的一部分
myComm.Connection=myConn;
myComm.Transaction=myTran;
myComm.CommandText="USE pubs";
myComm.ExecuteNonQuery();
myComm.CommandText="UPDATE roysched SET royalty = royalty * 1.10 WHERE title_id LIKE 'Pc%'";
myComm.ExecuteNonQuery();
myTran.Commit(); //提交事务
2.下面的示例创建一个 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();
}
}
SqlTransaction myTran; myTran=myConn.BeginTransaction();
该方法返回一个SqlTransaction类型的变量。在调用BeginTransaction()方法以后,所有基于该数据连接对象的SQL语句执行动作都将被认为是事务MyTran的一部分。同时,你也可以在该方法的参数中指定事务隔离级别和事务名称,如:
SqlTransaction myTran;
myTran=myConn.BeginTransaction(IsolationLevel.ReadCommitted,"SampleTransaction");
程序实例:
1. SQL SERVER
SqlConnection myConn=GetConn();
myConn.Open();
SqlCommand myComm=new SqlCommand();
SqlTransaction myTran; //创建一个事务
myTran=myConn.BeginTransaction(); //注意,SqlTransaction类无公开的构造函数
//从此开始,基于该连接的数据操作都被认为是事务的一部分
myComm.Connection=myConn;
myComm.Transaction=myTran;
myComm.CommandText="USE pubs";
myComm.ExecuteNonQuery();
myComm.CommandText="UPDATE roysched SET royalty = royalty * 1.10 WHERE title_id LIKE 'Pc%'";
myComm.ExecuteNonQuery();
myTran.Commit(); //提交事务
2.下面的示例创建一个 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();
}
}
相关文章推荐
- .net中数据库事务机制
- 数据库并发事务控制四:postgresql数据库的锁机制二:表锁
- 数据库并发机制及事务隔离机制
- spring框架多个数据库操作需统一提交事务回滚机制解析以及解决办法
- MS SQL Server数据库事务锁机制分析
- MS SQL Server数据库事务锁机制分析
- 数据库事务处理机制
- 在 .NET 中使用 Oracle 数据库事务
- 数据库的事务隔离机制
- 数据库事务隔离级别和锁实现机制
- 数据库事务隔离级别与锁机制的实现----不是针对PostgreSQL,而是普遍的原理,来自互联网,有删节
- .net 跨数据库事务的实现
- 【转】MSSQLServer数据库事务锁机制分析
- 事务在数据库以及.NET代码中的使用
- Spring事务传播机制和数据库隔离级别
- 数据库中,什么是事务,可以简述,事务机制如何实现的吗
- Spring事务传播机制和数据库隔离级别
- MS SQL Server数据库事务锁机制分析
- 数据库的脏数据?加锁? 数据库事务隔离级别和锁实现机制
- 15.数据库原理 事务的原理,锁机制,表连接,复杂查询语句(工作经验),性能调优,锁表以及解决方案==