您的位置:首页 > 运维架构 > 网站架构

三层架构中事务处理

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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: