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

      }

  • 相关阅读:
    windows 7系统搭建PHP网站环境
    本机搭建PHP环境全教程(图文)
    cmd不是内部命令解决方法
    [Tex学习笔记]章节用罗马字母编号
    丁伟岳院士逝世 享年70岁
    2014年度江西省青年科学家培养对象名单(共36名)
    Alexander Grothendieck去世了
    [詹兴致矩阵论习题参考解答]序言
    2014-2015第一学期听课安排
    一个老和尚的真言
  • 原文地址:https://www.cnblogs.com/itmangelihai/p/2512082.html
Copyright © 2011-2022 走看看