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

      }

  • 相关阅读:
    vim 高级使用技巧第二篇
    你所不知道的Html5那些事(一)
    linux设备驱动第三篇:如何实现一个简单的字符设备驱动
    Android Metro风格的Launcher开发系列第二篇
    「BZOJ3123」[SDOI2013]森林
    【模板】左偏树
    「luogu3157」[CQOI2011]动态逆序对
    「luogu3567」[POI2014]KUR-Couriers
    【模板】二逼平衡树
    「luogu3313」[SDOI2014]旅行
  • 原文地址:https://www.cnblogs.com/itmangelihai/p/2512082.html
Copyright © 2011-2022 走看看