好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

具体代码如下所示:

?

/// <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://HdhCmsTestcnblogs测试数据/ZeedLee/archive/2018/02/28/8482185.html

dy("nrwz");

查看更多关于C# 启用事务提交多条带参数的SQL语句实例代码的详细内容...

  阅读:42次