.NET事务操作

一、利用MS SQL数据库

MS SQL数据库提供了事务处理机制,利用T-SQL语句建立数据库存储过程,不仅实现了事务处理的要求,还提高了运行性能和速度。有一个限制就是对于业务逻辑特别复杂的事务处理起来可能不是得心应手。

加入回滚机制的事务操作如下:

CREATE PROC pTrans
AS
BEGIN
  BEGIN TRANSCATION
  ...
  IF @@error <> 0
    ROLLBACK
  ELSE
    BEGIN
    ...
    ...
    COMMIT TRANSCATION
    END
END

二、利用ADO.NET事务

ADO.NET框架提供了Connection和Transcation对象进行事务处理。

调用Connection对象的BeginTranscation方法开始事务,调用Transcation对象的Commit方法完成事务、Rollback方法取消事务。

优点:效率与数据库事务基本相当,方法简单。

缺点:事务在数据库连接层上,执行事务过程中需要手动维护一个连接。

SqlConnection sqlConn= new SqlConnection(ConfigurationManager.ConnectionStrings["testconn"].toString());
sqlConn.Open();
SqlTransction tran = sqlConn.BeginTranscation();
SqlComand cmd = new SqlCommand();
cmd.Connection = sqlConn;
cmd.Transcation = tran;
try  
 {  
     cmd.CommandText = "INSERT INTO [Test]([Name],[Value]) VALUES ('测试1','1')";  
     cmd.ExecuteNonQuery();  
     cmd.CommandText = "INSERT INTO [Test]([Name],[Value]) VALUES ('测试2','2')";  
     cmd.ExecuteNonQuery();  
   
     tran.Commit();  
 }  
 catch (Exception ex)  
 {  
     tran.Rollback();  
     throw new Exception(ex.Message, ex);  
 }  
 finally  
 {  
     sqlConn.Close();  
 }  

三、TranscationScope事务

.NET2.0中添加了System.Transcations的命名空间,提供了一个轻量级的事务处理框架

。可以自动提升为分布式事务,用户不用考虑是简单事务还是分布式事务。

四、EnterpriseServices事务

利用COM+实现自动处理事务,添加System.EnterpriesServices.dll,微软提供了使用方法:http://support.microsoft.com/default.aspx?scid=kb;zh-cn;816141

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值