REDAN

REDAN

导航

数据库事务

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

posted on 2008-10-08 22:37  REDAN  阅读(243)  评论(0)    收藏  举报