博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net 数据库连接 使用事务处理(一)
阅读量:4918 次
发布时间:2019-06-11

本文共 1344 字,大约阅读时间需要 4 分钟。

     在.net中,事务处理机制共有四种:数据库事务;ADO.NET事务;ASP.NET事务;企业服务及事务。

     ASP.NET事务是在Web应用程序的页面层工作,只需简单的在页面属性中加一个"Transaction="Required"",这样页面中的时间处理都作为页面整个事务的 一部分,该页面的任何处理出现问题,所以的处理都会回滚。

  为了执行一个ADO.NET事务,首先需要创建一个SqlTransaction对象,可以调用SqlConnection对象的BeginTransaction()方法来创建SqlTransaction对象。然后把它赋给SqlCommand对象的事务属性。当事务开始后,就可以执行任意次数的SqlCommand动作,但要保证SqlCommand对象属于同一个事务和连接。执行成功后,使用SqlTransaction的Commit()方法提交事务,否则使用SqlTransaction的Rollback()方法回滚事务。

  实例代码如下:

  SqlTransaction tran=null;

  using(SqlConnection cnn=new SqlConnection(连接路径))

  {

    

    try

    {
      cnn.open();
      //调用SqlConnection的BeginTransaction方法开启一个事务
      //并返回已经开启的事务
      tran=cnn.BeginTransaction();
      SqlCommand cmd=new SqlCommand();
      cmd.Transaction=tran;
      //...数据库访问代码
      tran.Commit();
    }
    catch(Exception ex)
    {
      tran.RollBack();
    }
    finally{cnn.close();}

  }

也可以使用TransactionOptions配置事务设置

在使用TransactionOptions时要先引用System.Transactions。

实例代码:

  TransactionOptions opt = new TransactionOptions();

  opt.IsolationLevel = System.Transactions.IsolationLevel.Serializable;
  using (CommittableTransaction tran = new CommittableTransaction(opt))

  {

    try

    {

      //几个要绑定成同一个事务处理方法

      tran.Commit();

    }

    catch(Exception ex)

    {
      tran.RollBack();
    }

  }

 

 

 

转载于:https://www.cnblogs.com/itmangelihai/archive/2012/05/21/2512082.html

你可能感兴趣的文章
关于MYSQL group by 分组按时间取最大值的实现方法!
查看>>
aspx页面加载时清掉缓存
查看>>
跟bWAPP学WEB安全(PHP代码)--邮件头和LDAP注入
查看>>
eclipse中tomcat的安装或者集成,
查看>>
终端log保存
查看>>
LeetCode Wiggle Sort
查看>>
关于链表的基本操作包括内容
查看>>
combox下拉框获取项目list的name显示
查看>>
pl/sql下载
查看>>
C#版的二维码生成器
查看>>
js中的深拷贝和浅拷贝2
查看>>
Windows 10利用自带的 Hyper-v 安装Linux
查看>>
js中的闭包之我理解
查看>>
Asp.Net一种更加优雅的数据绑定方法
查看>>
Moving Swiftly(从OC切换到Swift)
查看>>
html meta标签属性用法集合
查看>>
AVL 平衡二叉树
查看>>
关于DSP仿真软件CCS中断点和探针的简单理解
查看>>
实验吧-杂项-异性相吸(异或加密)
查看>>
留言板
查看>>