C# 启用事务提交多条带参数的SQL语句

2018-03-01 07:51:02来源:cnblogs.com作者:liyanzhao人点击

分享
       /// <summary>        /// 启用事务提交多条带参数的SQL语句        /// </summary>        /// <param name="mainSql">主表SQL</param>        /// <param name="mainParam">主表对应的参数</param>        /// <param name="detailSql">明细表SQL语句</param>        /// <param name="detailParam">明细表对应的参数</param>        /// <returns>返回事务是否成功</returns>        public static bool UpdateByTran(string mainSql, SqlParameter[] mainParam, string detailSql, List<SqlParameter[]> detailParam)        {            SqlConnection conn = new SqlConnection(connString);            SqlCommand cmd = new SqlCommand();            cmd.Connection = conn;            try            {                conn.Open();                cmd.Transaction = conn.BeginTransaction();//开启事务                if (mainSql != null && mainSql.Length != 0)                {                    cmd.CommandText = mainSql;                    cmd.Parameters.AddRange(mainParam);                    cmd.ExecuteNonQuery();                }                foreach (SqlParameter[] param in detailParam)                {                    cmd.CommandText = detailSql;                    cmd.Parameters.Clear();                    cmd.Parameters.AddRange(param);                    cmd.ExecuteNonQuery();                }                cmd.Transaction.Commit();//提交事务                return true;            }            catch (Exception ex)            {                if (cmd.Transaction != null)                {                    cmd.Transaction.Rollback();//回滚事务                }                //将异常信息写入日志                 string errorInfo = "调用UpdateByTran(string mainSql,  SqlParameter[] mainParam,string detailSql ,List <SqlParameter []>detailParam)方法时
发生错误,具体信息:" + ex.Message; WriteLog(errorInfo); throw ex; } finally { if (cmd.Transaction != null) { cmd.Transaction = null;//清空事务 } conn.Close(); } }

转载自CSDN

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台