三层架构中事务处理
2009-06-19 15:50
155 查看
数据访问层:
/// <summary>
/// 执行所有无返回语句
/// </summary>
/// <param name="coms"></param>
/// <returns>true执行事务成功,false执行事务失败</returns>
public bool DoTran(SqlCommand[] coms)
{
string strSql = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection myConn = new SqlConnection(strSql);
myConn.Open();
SqlCommand myComm = new SqlCommand();
SqlTransaction myTran;
myTran = myConn.BeginTransaction();
myComm.Connection = myConn;
myComm.Transaction = myTran;
try
{
for (int i = 0; i < coms.Length; i++)
{
myComm.CommandText = coms[i].CommandText;
myComm.Parameters.Clear();
SqlParameter[] clonedParameters = new SqlParameter[coms[i].Parameters.Count];
for (int m = 0, n = coms[i].Parameters.Count; m < n; m++)
{
clonedParameters[m] = (SqlParameter)((ICloneable)coms[i].Parameters[m]).Clone();
}
if (clonedParameters != null)
{
foreach (SqlParameter parameter in clonedParameters)
{
myComm.Parameters.Add(parameter);
}
}
myComm.ExecuteNonQuery();
}
myTran.Commit();
myConn.Close();
return true;
}
catch
{
myTran.Rollback();
myConn.Close();
return false;
}
}
/// <summary>
/// 执行所有无返回语句
/// </summary>
/// <param name="coms"></param>
/// <returns>true执行事务成功,false执行事务失败</returns>
public bool DoTran(SqlCommand[] coms)
{
string strSql = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection myConn = new SqlConnection(strSql);
myConn.Open();
SqlCommand myComm = new SqlCommand();
SqlTransaction myTran;
myTran = myConn.BeginTransaction();
myComm.Connection = myConn;
myComm.Transaction = myTran;
try
{
for (int i = 0; i < coms.Length; i++)
{
myComm.CommandText = coms[i].CommandText;
myComm.Parameters.Clear();
SqlParameter[] clonedParameters = new SqlParameter[coms[i].Parameters.Count];
for (int m = 0, n = coms[i].Parameters.Count; m < n; m++)
{
clonedParameters[m] = (SqlParameter)((ICloneable)coms[i].Parameters[m]).Clone();
}
if (clonedParameters != null)
{
foreach (SqlParameter parameter in clonedParameters)
{
myComm.Parameters.Add(parameter);
}
}
myComm.ExecuteNonQuery();
}
myTran.Commit();
myConn.Close();
return true;
}
catch
{
myTran.Rollback();
myConn.Close();
return false;
}
}
相关文章推荐
- 在三层架构中使用事务处理
- asp.net 事务的处理,dts 的设置,asp.net三种事务处理方法,三层架构,微软企业库,动软生成器生成的代码下如何使用事务
- 机房收费系统完美设计——事务处理vs三层架构2
- 机房收费系统完美设计——事务处理VS三层架构
- C#的事务处理(三层架构)
- Asp.net 在三层架构中事务的使用
- 微服务架构下处理分布式事务,你必须知道的事儿
- 三层架构的项目中通常异常的处理方式
- Delphi三层的事务处理方法
- 一个简单的跨域跨数据库事务处理架构
- Apache Ignite事务架构:第三方持久化的事务处理
- 三层架构的项目中通常异常的处理方式!!!
- Asp.net 在三层架构中事务的使用实例代码
- 一个简单的跨域跨数据库事务处理架构
- 讨论:关于SSH三层框架中的事务处理
- 微服务架构下处理分布式事务,你必须知道的事儿
- (6)理解事务处理、事务处理的隔离级别,和使用JDBC进行事务处理||抛弃框架,如何实现分层架构下JDBC事务的控制
- Apache Ignite事务架构:Ignite持久化的事务处理
- 微服务架构下处理分布式事务,你必须知道的事儿