软件编程
位置:首页>> 软件编程>> C#编程>> C# 启用事务提交多条带参数的SQL语句实例代码

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

作者:liyanzhao  发布时间:2021-06-20 15:22:09 

标签:c#,参数,事务

具体代码如下所示:


/// <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语句网站的支持!

来源:https://www.cnblogs.com/ZeedLee/archive/2018/02/28/8482185.html

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com