具体代码如下所示:
/// <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)方法时<br data-filtered="filtered">发生错误,具体信息:" + ex.Message;
WriteLog(errorInfo);
throw ex;
}
finally {
if (cmd.Transaction != null) {
cmd.Transaction = null;
//清空事务 }
conn.Close();
}
}
总结
以上所述是小编给大家介绍的C# 启用事务提交多条带参数的SQL语句,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
- c#中SqlTransaction——事务详解
- C#编程之事务用法
- C#中的事务用法实例分析
- C#执行SQL事务用法实例
- C#事务处理(Execute Transaction)实例解析
- c# 执行事务函数代码