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

      }

  • 相关阅读:
    初学者对Python的认知
    html5中table标签的延伸
    表格和表单
    html5行级标签
    块级标签
    分布式NoSQL数据库Cassandra集群搭建
    Grafana 邮箱报警测试之Failed to send alert notifications问题解决
    Elasticsearch启动之Exception in thread "main" java.nio.file.AccessDeniedException问题解决
    Mysql 主从同步之Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'问题解决
    Filebeat (7.3.2)启动脚本
  • 原文地址:https://www.cnblogs.com/itmangelihai/p/2512082.html
Copyright © 2011-2022 走看看