这篇文章主要介绍了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语句,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程学习网网站的支持!
织梦狗教程
本文标题为:C# 启用事务提交多条带参数的SQL语句实例代码


基础教程推荐
猜你喜欢
- Unity shader实现高斯模糊效果 2023-01-16
- C#中 Json 序列化去掉null值的方法 2022-11-18
- Unity 如何获取鼠标停留位置下的物体 2023-04-10
- C#通过标签软件Bartender的ZPL命令打印条码 2023-05-16
- C#中的Linq to JSON操作详解 2023-06-08
- 实例详解C#实现http不同方法的请求 2022-12-26
- c# – USING块在网站与Windows窗体中的行为不同 2023-09-20
- C# 解析XML和反序列化的示例 2023-04-14
- C#获取指定目录下某种格式文件集并备份到指定文件夹 2023-05-30
- C#调用摄像头实现拍照功能的示例代码 2023-03-09