首页 > 代码库 > 如何使用事务控制程序执行
如何使用事务控制程序执行
我们在开发软件过程中,一定会遇到这样的问题:我们在程序中要完成一个功能,这个功能需要改变三个对象的状态,但是程序在执行过程中出现了错误,只有两个对象的状态改变了,第三个对象的状态没有改变,这时候程序已经抛出异常执行结束了,执行结果不是我们想要的结果,并且这个结果是不可逆的。我们如何解决这种问题呢,这就是这篇文章将要叙述的重点----如何使用事务控制程序执行。
我相信大多数的程序员,对这个词还是很熟悉的,因为事务是学习数据库不可或缺的一部分。那么事务到底是什么玩意呢?我们先来了解一下数据库中的事务。
事务是数据库中单个逻辑工作单元执行的一系列操作,这一系列操作要么完全的执行,要么完全不执行,它是一个不可分割的工作单位。事务处理可以确保事务内部的操作都成功完成,否则不会更新数据,这样可以是程序更加的安全可靠。一个逻辑单元要想成为事务,必须要符合以下几个条件:原子性、一致性、隔离性、持久性。
数据库事务的特点,不就是我们开头问题的解决方案吗,那么事务如何在代码中使用呢?它和数据库事务的区别是什么?
Microsoft.netframework类库支持代码中事务的使用,我们只需要添加引用即可使用(以vb.net为例)。如图:
然后再需要使用的类中添加引用:
Imports System.Transactions就可以在类中使用了。事务代码示例如下:
Using scope As New TransactionScope Try '功能模块1 Dim BIrecharge As Integer Dim BI = Factory.Factory.GetFactory() BIrecharge = BI.CreateIRecharge.Add(enrecharge) '功能模块 2 Dim BIModify As Integer BIModify = BI.CreateIStudent.ModifyCash(enstudent) Return enstudent '提交事物 scope.Complete() Catch ex As Exception '出错以后自动回滚 End Try End Using
例子中,有两个功能模块,它们共同完成了某个功能,事务可以控制这两个步骤全部完成,或者什么都不做。
事务帮我们解决了数据不同步的问题,增强了程序的可靠性。
如何使用事务控制程序执行
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。