zoukankan      html  css  js  c++  java
  • asp.net 数据库连接 使用事务处理(一)

         在.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();
        }

      }

  • 相关阅读:
    POJ2888 Magic Bracelet [矩阵快速幂+Burnside+欧拉函数]
    数列的 GCD [计数问题]
    com组件的注册
    WCF 传输和接受大数据
    数据库中已存在名为 'View_Business' 的对象。
    windows 两个用户,默认其中一个用户登录
    用C#读取,写入ini文件
    小心得,关于串口
    未能加载文件或程序集"Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad
    无法激活服务,因为它不支持 ASP.NET 兼容性
  • 原文地址:https://www.cnblogs.com/itmangelihai/p/2512082.html
Copyright © 2011-2022 走看看