手机
当前位置:查字典教程网 >编程开发 >C#教程 >c#实现数据库事务示例分享
c#实现数据库事务示例分享
摘要:复制代码代码如下:usingSystem;usingSystem.Data.SqlClient;namespaceExecuteSqlTra...

复制代码 代码如下:

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#、VB.NET实现复杂的二进制操作

C#实现大数字运算的实例代码

c# 开机启动项的小例子

c# 应用事务的简单实例

用C#实现启动另一程序的方法实例

C#常用正则大全分享

C#读取QQ纯真IP数据库QQWry.Dat的代码

C#实现的最短路径分析

C#连接db2数据库的实现方法

c#固定长度的随机字符串例子

精品推荐
分类导航