在数据访问层把事务处理分解成最小的操作步骤
然后在商业逻辑层调用即可。。一个简单例子:
数据层:
public void _BeginTransaction()
public void _Execute(string sql)
public void _Commit()
public void _Rollback()
商业逻辑层:
xx._BeginTransaction()
try
{
xx._Execute(sql);
}
catch(Exception objErr)
{
xx._Rollback();
}
xx._Commit();和和,搞定。。
然后在商业逻辑层调用即可。。一个简单例子:
数据层:
public void _BeginTransaction()
public void _Execute(string sql)
public void _Commit()
public void _Rollback()
商业逻辑层:
xx._BeginTransaction()
try
{
xx._Execute(sql);
}
catch(Exception objErr)
{
xx._Rollback();
}
xx._Commit();和和,搞定。。
{
DBConn.Open();
}
DBTrans=DBConn.BeginTransaction();
DBCmd=new SqlCommand();
DBCmd.Connection=DBConn;
DBCmd.Transaction=DBTrans;
try
{
for(int i=0;i<Sql_str.Length;i++)
{
DBCmd.CommandText=Sql_str[i].ToString();
DBCmd.ExecuteNonQuery();
}
DBTrans.Commit();
Exstate=true;
return;
}
catch
{
DBTrans.Rollback();
MessageBox.Show("更新事务操作失败!","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
Exstate=false;
return;
}
如DbCmd,你应该先定义为
SqlCommand DbCmd;
其它的也一样