自己写的实现数据库事务的简单方法ExecuteSqlTran()

原创 2004年10月13日 12:49:00

    做项目时需要实现数据库的事务,觉得每次用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(string SQLStringList)
  {
   using (OdbcConnection conn = new OdbcConnection(connectionString))
   {
    conn.Open();
    OdbcCommand cmd = new OdbcCommand();
    cmd.Connection=conn;    
    OdbcTransaction tx=conn.BeginTransaction();   
    cmd.Transaction=tx;    
    try
    {  
     string [] split= SQLStringList.Split(new Char [] { ';'});
     foreach (string strsql in split)
     {
      if (strsql.Trim()!="")
      {
       cmd.CommandText=strsql;
       cmd.ExecuteNonQuery();
      }
     }       
     tx.Commit();     
    }
    catch(System.Data.Odbc.OdbcException E)
    {  
     tx.Rollback();
     throw new Exception(E.Message);
    }
   }
  }

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

自己写的实现数据库事务的简单方法ExecuteSqlTran()

做项目时需要实现数据库的事务,觉得每次用SqlTransaction 写代码,太麻烦了,就想总结一个通用的方法放在数据层,以便复用.就自己写了简单的方法.可满足一般情况下的需求.:)同时执行两条SQL...
  • cyp403
  • cyp403
  • 2006年05月05日 15:50
  • 781

实现数据库事务的简单方法ExecuteSqlTran()

做项目时需要实现数据库的事务,觉得每次用SqlTransaction 写代码,太麻烦了,就想总结一个通用的方法放在数据层,以便复用.就自己写了简单的方法.可满足一般情况下的需求.:)同时执行两条SQL...
  • fzzf
  • fzzf
  • 2005年11月27日 20:59
  • 670

自己实现一个简单版的HashMap

public class MyHashMap { //默认初始化大小 16 private static final int DEFAULT_INITIAL_CAPACI...
  • uhgagnu
  • uhgagnu
  • 2017年03月03日 18:41
  • 536

数据结构键值HashMap之自己编写简单的HashMap

通过学习HashMap数据结构,自己实现一个简单的HashMap
  • nayan3480232
  • nayan3480232
  • 2017年08月09日 00:16
  • 228

从零开始编写一个简单的Linux文件系统

最近想研究一下Linux文件系统,最好的开始当然是自己写一个简单的文件系统,并能够mount上。这方面的工作其实已经有很多人做过了,比如IBM Linux技术中心的教程:Linux FileSyste...
  • shuxiaogd
  • shuxiaogd
  • 2015年09月30日 16:09
  • 2403

监听器简单实现

用servlet监听器实现jsp中在线人数统计的方法        在网站中经常需要进行在线人数的统计。过去的一般做法是结合登录和退出功能,即当用户输入用户名密码进行登录的时候计数器加1,然后当用户点...
  • SecretValley
  • SecretValley
  • 2008年04月01日 21:22
  • 702

写一个自己的Spring框架——简单实现IoC容器功能

学习过Spring的同学都知道,Spring框架的核心就是IoC和AOP。Spring可以理解为一个工厂,负责对象的创建和对象间关系的维护。IoC即控制反转,简单点说就是原来的对象是在要使用之前通过在...
  • u010994169
  • u010994169
  • 2017年05月04日 14:09
  • 2114

实现一个简单的DOM选择器

实现一个简单的DOM选择器   预备知识 DOM相关知识 http://www.w3school.com.cn/htmldom/index.asp   具体描述 实现一个方法$,可以完成以下功能   ...
  • lulalahappy123
  • lulalahappy123
  • 2015年04月07日 08:49
  • 464

自己动手模仿 springmvc 写一个 mvc框架

spring的知识那么多,看源码也不知从何看起,那应该怎么学呢?我觉得,完整的自己动手去实现一个,是最好的方式。 bfmvc模仿springmvc的轻量级web框架,适合学习和搭建小型web项目使用,...
  • qq_31655965
  • qq_31655965
  • 2017年05月27日 10:23
  • 2174

自己实现的parseInt方法

public static int parseInt(String num) { int index = 0; int result = 0; if (num.startsWith("-")) {...
  • xiongzirui
  • xiongzirui
  • 2017年07月03日 14:55
  • 395
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自己写的实现数据库事务的简单方法ExecuteSqlTran()
举报原因:
原因补充:

(最多只允许输入30个字)