在对数据库的操作中,有时一个操作往往涉及到多张表,为了避免出现向5张表中插入记录,结果插入到第三张的时候出错,结果最后导致第一二张表已插入数据,而后面三张没有插入所带来的数据不一致的情况,我们在写代码的时候需要用事务来约束。
如下:
//事物,保证数据的一致性
using (TransactionScope tr = new TransactionScope())
{
DbHelper.ExecuteSql("insert into T_student values('lidan',23)");//操作第一张表
DbHelper.ExecuteSql("insert into T_course values('数学')");//第二张(如果这里出问题,那么对第一张表的操作也不会进行,保证了数据的一致性)
int id = DbHelper.GetMaxID("id", "T_course") - 1;
DbHelper.ExecuteSql("insert into T_performance values('100',"+id+")");//第三张
tr.Complete();//当都成功后才提交到数据库
}
写给自己看看,也写给菜鸟看看,高手多给讲讲高深的东西,这些都太基础了,学习中。