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);
}