zoukankan      html  css  js  c++  java
  • 自己写的实现数据库事务的简单方法ExecuteSqlTran()

    做项目时需要实现数据库的事务,觉得每次用SqlTransaction 写代码,太麻烦了,就想总结一个通用的方法放在数据层,以便复用.就自己写了简单的方法.可满足一般情况下的需求.:)

    同时执行两条SQL语句的方法:

      public static void ExecuteSqlTran(string SQLString1,string SQLString2)
      {
       using (SqlConnection conn = new SqlConnection(strDBConnectionString))
       {
        conn.Open();
        SqlCommand cmd = new SqlCommand();
        cmd.Connection=conn;    
        SqlTransaction tx=conn.BeginTransaction();   
        cmd.Transaction=tx;    
        try
        {     
         cmd.CommandText=SQLString1;
         cmd.ExecuteNonQuery();
         cmd.CommandText=SQLString2;
         cmd.ExecuteNonQuery();     
         tx.Commit();     
        }
        catch(System.Data.SqlClient.SqlException E)
        {  
         tx.Rollback();
         throw new Exception(E.Message);
        }
       }
      } 

    如果有多条SQL语句需要放在一个事务里实现执行,就用下面这个方法:

        /// <summary>
      /// 执行多条SQL语句,实现数据库事务。
      /// </summary>
      /// <param name="SQLStringList">多条SQL语句</param>  
      public static void ExecuteSqlTran(ArrayList SQLStringList)
      {
       using (SqlConnection conn = new SqlConnection(connectionString))
       {
        conn.Open();
        SqlCommand cmd = new SqlCommand();
        cmd.Connection=conn;    
        SqlTransaction tx=conn.BeginTransaction();   
        cmd.Transaction=tx;    
        try
        {     
         for(int n=0;n<SQLStringList.Count;n++)
         {
          string strsql=SQLStringList[n].ToString();
          if (strsql.Trim().Length>1)
          {
           cmd.CommandText=strsql;
           cmd.ExecuteNonQuery();
          }
         }          
         tx.Commit();     
        }
        catch(System.Data.SqlClient.SqlException E)
        {  
         tx.Rollback();
         throw new Exception(E.Message);
        }
       }
      }

    方法虽然简单,但确实省了不少时间:)

    (作者:李天平    转载请注明)

  • 相关阅读:
    5- MySQL数据库SELECT查询操作
    4- MySQL创建表以及增删改查
    3- MySQL数据类型
    2- MySQL客户端工具Workbench的使用及数据库的操作
    4-1 Postman脚本的应用
    ImportError: cannot import name HTTPSHandler
    python zlib模块缺失报错:RuntimeError: Compression requires the (missing) zlib module
    make 命令出现:"make:*** No targets specified and no makefile found.Stop."
    用Wget下载的文件在哪里可以找到。。
    Linux wget命令详解
  • 原文地址:https://www.cnblogs.com/ltp/p/289647.html
Copyright © 2011-2022 走看看