【ADO.NET】.NET事务应用-代码分享
来源:互联网 发布:485shopex页面优化 编辑:程序博客网 时间:2024/05/21 05:56
.NET代码
SQLBulk应用
public static void InsertEntities(string connectionString, string TableName, DataTable dt) { using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); //增加事务 SqlTransaction trans = conn.BeginTransaction(); using (SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction)) { try { sqlbulkcopy.DestinationTableName = TableName; for (int i = 0; i < dt.Columns.Count; i++) { sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName); } sqlbulkcopy.WriteToServer(dt); trans.Commit(); conn.Close(); } catch (System.Exception ex) { trans.Rollback(); conn.Close(); throw ex; } } } }
SQL通用
/// <summary>/// 执行多条SQL语句,实现数据库事务。/// </summary>/// <param name="SQLStringList">SQL语句的哈希表(key为sql语句,value是该语句的SqlParameter[])</param>public static void ExecuteSqlTran(Hashtable SQLStringList) { using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); using (SqlTransaction trans = conn.BeginTransaction()) { SqlCommand cmd = new SqlCommand(); try { //循环 foreach (DictionaryEntry myDE in SQLStringList) { string cmdText = myDE.Key.ToString(); SqlParameter[] cmdParms = (SqlParameter[])myDE.Value; PrepareCommand(cmd, conn, trans, cmdText, cmdParms); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); } trans.Commit(); } catch { trans.Rollback(); throw; } } } }
/// <summary>/// 执行多条SQL语句,实现数据库事务。/// </summary>/// <param name="SQLStringList">SQL语句的哈希表(key为sql语句,value是该语句的SqlParameter[])</param> public static void ExecuteSqlTranWithIndentity(Hashtable SQLStringList) { using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); using (SqlTransaction trans = conn.BeginTransaction()) { SqlCommand cmd = new SqlCommand(); try { int indentity = 0; //循环 foreach (DictionaryEntry myDE in SQLStringList) { string cmdText = myDE.Key.ToString(); SqlParameter[] cmdParms = (SqlParameter[])myDE.Value; foreach (SqlParameter q in cmdParms) { if (q.Direction == ParameterDirection.InputOutput) { q.Value = indentity; } } PrepareCommand(cmd, conn, trans, cmdText, cmdParms); int val = cmd.ExecuteNonQuery(); foreach (SqlParameter q in cmdParms) { if (q.Direction == ParameterDirection.Output) { indentity = Convert.ToInt32(q.Value); } } cmd.Parameters.Clear(); } trans.Commit(); } catch { trans.Rollback(); throw; } } } }
阅读全文
1 0
- 【ADO.NET】.NET事务应用-代码分享
- ADO.NET中的事务
- ado.net 事务
- ADO.NET中的事务
- ADO.NET 事务控制
- ADO.NET 事务控制
- ADO.net 添加事务
- ADO.NET中事务的理解与应用
- ADO.NET事务的使用
- ADO.NET事务学习小结
- 一般的ADO.net 事务
- ADO.Net Oracle 事务问题
- 在ADO.NET编写事务
- 在ADO.NET编写事务
- Ado.Net事务(transaction)
- ADO.net - 事务使用范例
- ADO.NET事务的实现
- (分享)(经典)ADO.NET省市选择代码
- 信息管理
- Makefile教程
- eclispe经验技巧篇--项目项目包的管理
- GAWK(一):RS、FS与ORS、OFS等内置变量的用法
- bzoj2527 [Poi2011]Meteors(整体二分+树状数组)
- 【ADO.NET】.NET事务应用-代码分享
- 数据结构实验之排序一:一趟快排
- Kakfka-Spark Streaming-Spark SQL操作笔记
- HDU-4370 0 or 1
- comic life中文版下载 | Comic Life(漫画制作工具)官方破解版V3.5.6下载 | comic life破解版
- numpy.random.RandomState()函数用法
- python input() 与raw_input()
- JavaScript DOM 编程
- 正则表达式语法