当前位置: 移动技术网 > IT编程>开发语言>c# > C# 启用事务提交多条带参数的SQL语句实例代码

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

2019年07月18日  | 移动技术网IT编程  | 我要评论
具体代码如下所示: /// <summary> /// 启用事务提交多条带参数的sql语句 /// </summary>

具体代码如下所示:

/// <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语句,希望对大家有所帮助

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网