c#实现数据库事务示例分享
using System;
using System.Data.SqlClient;namespace ExecuteSqlTran
{
class Program
{
class Result<T>
{
public T data;
public string Message;
public bool Success;
public string StackTrace;
}struct ExecuteableUnit
{
public string SQL;
public SqlParameter[] param;
}/// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLStringList">SQL语句的哈希表(key为sql语句,value是该语句的SqlParameter[])</param>
private static Result<int> ExecuteSqlTransaction(params ExecuteableUnit[] executeableUnits)
{
using (SqlConnection connection = new SqlConnection(""))
{
connection.Open();
SqlCommand command = connection.CreateCommand();
SqlTransaction transaction = connection.BeginTransaction();
command.Connection = connection;
command.Transaction = transaction;
int result = 0;
try
{
foreach(ExecuteableUnit exeUnit in executeableUnits)
{
command.CommandText = exeUnit.SQL;
if(exeUnit.param.GetLength(1) > 0)
{
foreach(SqlParameter p in exeUnit.param)
command.Parameters.Add(p);
}
result += command.ExecuteNonQuery();
}
transaction.Commit();
}
catch (Exception ex)
{
// Attempt to roll back the transaction.
try
{
transaction.Rollback();
}
catch (Exception ex2)
{
return new Result<int>()
{
Success = false, Message = ex2.Message, StackTrace = ex2.StackTrace
};
}
return new Result<int>()
{
Success = false, Message = ex.Message, StackTrace = ex.StackTrace
};
}
finally
{
// Attempt to roll back the transaction.
try
{
connection.Close();
}
catch (Exception ex)
{
}
}
return new Result<int>()
{
Success = true, data = result
};
}
}public static void Main(string[] args)
{
}
}
}
您可能感兴趣的文章:
- C#实现数据库事务处理的简单示例代码
- C#实现数据库事务处理示例代码
- c#实例化继承类,必须对被继承类的程序集做引用 .net core Redis分布式缓存客户端实现逻辑分析及示例demo 数据库笔记之索引和事务 centos 7下安装python 3.6笔记 你大波哥~ C#开源框架(转载) JSON C# Class Generator ---由json字符串生成C#实体类的工具
- C#实现数据库事务处理的简单示例代码
- C#实现数据库事务处理示例代码
- C#实现数据库事务处理示例代码
- C#实现数据库事务处理示例代码
- c# 执行多条SQL语句,实现数据库事务 线性表 Hashtable
- C# .Net :Excel NPOI导入导出操作教程之将Excel文件读取并写到数据库表,示例分享
- C#实现执行数据库事务案例
- C#实现执行多条SQl语句,实现数据库事务
- C# 执行多条SQL语句,实现数据库事务(通过Hashtable存储数据) .
- C#使用COM+实现事务控制,操作多个数据库
- C# 执行多条SQL更新语句,实现数据库事务
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- c#实现断点续传功能示例分享
- Go/Python/Erlang编程语言对比分析及示例 基于RabbitMQ.Client组件实现RabbitMQ可复用的 ConnectionPool(连接池) 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil 分享基于MemoryCache(内存缓存)的缓存工具类,C# B/S 、C/S项目均可以使用!
- c#实现将pdf转文本的示例分享
- c#实现万年历示例分享 万年历农历查询