数据库事务的一些用法
在以下的一个方法中涉及到了ArrayList 类的参数
/// <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;//为将要执行的SqlCommand对象获取或者设置SqlTransaction (Transact-SQL事务)
try
{
for(int n=0;n<SQLStringList.Count;n++)
{
string strsql=SQLStringList[n].ToString();
if (strsql.Trim().Length>1)
{
cmd.CommandText=strsql;
cmd.ExecuteNonQuery();//遍历以执行动态数组中的sql语句
}
}
tx.Commit();//提交数据库事务
}
catch(System.Data.SqlClient.SqlException E)
{
tx.Rollback();//从挂起状态回滚事务,并指定事务或者保存点名称
throw new Exception(E.Message);
}
}
}
/// <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;//为将要执行的SqlCommand对象获取或者设置SqlTransaction (Transact-SQL事务)
try
{
for(int n=0;n<SQLStringList.Count;n++)
{
string strsql=SQLStringList[n].ToString();
if (strsql.Trim().Length>1)
{
cmd.CommandText=strsql;
cmd.ExecuteNonQuery();//遍历以执行动态数组中的sql语句
}
}
tx.Commit();//提交数据库事务
}
catch(System.Data.SqlClient.SqlException E)
{
tx.Rollback();//从挂起状态回滚事务,并指定事务或者保存点名称
throw new Exception(E.Message);
}
}
}
浙公网安备 33010602011771号