我们在开发软件过程中,一定会遇到这样的问题:我们在程序中要完成一个功能,这个功能需要改变三个对象的状态,但是程序在执行过程中出现了错误,只有两个对象的状态改变了,第三个对象的状态没有改变,这时候程序已经抛出异常执行结束了,执行结果不是我们想要的结果,并且这个结果是不可逆的。我们如何解决这种问题呢,这就是这篇文章将要叙述的重点----如何使用事务控制程序执行。
我相信大多数的程序员,对这个词还是很熟悉的,因为事务是学习数据库不可或缺的一部分。那么事务到底是什么玩意呢?我们先来了解一下数据库中的事务。
事务是数据库中单个逻辑工作单元执行的一系列操作,这一系列操作要么完全的执行,要么完全不执行,它是一个不可分割的工作单位。事务处理可以确保事务内部的操作都成功完成,否则不会更新数据,这样可以是程序更加的安全可靠。一个逻辑单元要想成为事务,必须要符合以下几个条件:原子性、一致性、隔离性、持久性。
数据库事务的特点,不就是我们开头问题的解决方案吗,那么事务如何在代码中使用呢?它和数据库事务的区别是什么?
Microsoft.netframework类库支持代码中事务的使用,我们只需要添加引用即可使用(以vb.net为例)。如图: