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

王朝mssql·作者佚名  2006-05-06
窄屏简体版  字體: |||超大  

[/url]

做项目时需要实现数据库的事务,觉得每次用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);

}

}

}

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

(作者:[url=http://blog.csdn.net/litp]李天平 转载请注明)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航