C# 启用事务提交多条带参数的SQL语句实例代码
时间:2019-04-13
本文章向大家介绍C# 启用事务提交多条带参数的SQL语句实例代码,主要包括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语句,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
- 微信年度重磅“小游戏”上线,罗胖一度退出的小程序正在逆袭
- 谈谈WCF中的Data Contract(2):WCF Data Contract对Generic的支持
- Android注解学习(1)
- [WCF权限控制]ASP.NET Roles授权[上篇]
- [WCF权限控制]ASP.NET Roles授权[下篇]
- 如何解决分布式系统中的跨时区问题[实例篇]
- Visual Studio对程序集签名时一个很不好用的地方
- 一个关于解决序列化问题的编程技巧
- [WCF权限控制]从两个重要的概念谈起:Identity与Principal[上篇]
- 从数据到代码——通过代码生成机制实现强类型编程[下篇]
- 谈谈你最熟悉的System.DateTime[下篇]
- 如何解决EnterLib异常处理框架最大的局限——基于异常"类型"的异常处理策略
- [WCF权限控制]从两个重要的概念谈起:Identity与Principal[下篇]
- 收藏!6道常见hadoop面试题及答案解析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android NavigationBar问题处理的方法
- mac系统下载、安装、使用Java8教程
- React Native学习之Android的返回键BackAndroid详解
- Android动态添加view的方法示例
- Android开发之瀑布流控件的实现与使用方法示例
- Android自定义View绘制四位数随机码
- Anroid四大组件service之本地服务的示例代码
- Android使用Activity实现简单的可输入对话框
- ANDROID BottomNavigationBar底部导航栏的实现示例
- Android实现时间倒计时功能
- Android开发基于Drawable实现圆角矩形的方法
- Android开发中滑动分页功能实例详解
- Android登录注册功能 数据库SQLite验证
- CMQ消费者报错,无法获取本机ip地址问题排查
- 腾讯云TKE-Metrics-Server案例: TKE中自建Metrics-Server问题