什么是事务?
事务就是保证一次就成功,要么全成功,要么都失败,保证数据的正确性,如果某一步出现了异常,数据就会回滚,把之前的操作撤销,一般用于涉及多表或多数据的时候使用;举个栗子:微信支付都用过吧,它的原理就是把付款方的金额减掉,然后在收款方的金额里加上对应的金额,这两个操作是一定要有的,总不能把付款方的金额减掉了,然后出现了异常,收款方的金额没加上去吧,这样用户还不上门找你算账?所以,我们就要在涉及多表或多数据的时候,加上事务,保证数据的正确性。
事务怎么使用?
事务Vs中默认没引用,我们要自己去引用一下。
首先在引用这右键,点添加引用:
然后依此选择程序集/框架/System.Transactions,再把System.Transactions给勾上,再点确定:
然后在代码里引用一下就可以了(把鼠标移到红线那,会出现一个黄色的灯,点击System.Transactions就引用了)
用了事务,就一定要在你要做的操作做完之后提交事务,只有提交了事务,数据才会保存到数据库(在using括起来部分的里面提交事务)。
如果在某一步失败了,scope.Complete();会执行不了,using把变量自动回收掉,数据就会回滚,然后就会回到操作前的操作,就可以避免出现一半成功一半失败的情况了。