日期:2014-05-19  浏览次数:21066 次

SQL事务这样写是否能正常回滚?
SqlCommand   cmd   =   new   SqlCommand();
clsDatabase   db   =   new   clsDatabase();
SqlTransaction   myTran=   new   SqlTransation();
myTran   =   db.getConn().BeginTransation();
try
{
        //执行数据库操作
        myTran.Commit();
}
catch(Exception   err)
{
        ShowErrMsg(err.message);
}
finally
{
        db.CloseDB();
        cmd.Dispose();
}


当程序出错时,是否可以正常回滚事务?

------解决方案--------------------
try
{
//执行数据库操作
myTran.Commit();
}
catch(Exception err)
{
rollback()------------------要这里加入回滚才可以
ShowErrMsg(err.message);
}
finally
{
db.CloseDB();
cmd.Dispose();
}
------解决方案--------------------
不會回滾,要加上 myTran.RollbackTrans();
catch(Exception err)
{
myTran.RollbackTrans();
ShowErrMsg(err.message);
}