事务由执行的单个命令或一组命令组成。 通过事务可以将多个操作合并为单个工作单元。 如果在事务中的某一点发生故障,则所有更新都可以回滚到其事务前状态。
例如,假设应用程序执行两个任务。 首先使用订单信息更新表。 然后更新包含库存信息的表,将已订购的商品记入借方。 如果任何一项任务失败,则这两个更新将回滚。
事务的作用:
一致性:同时进行的查询和更新彼此不会发生冲突,其它用户不会看到发生了变化但尚未提交的数据;
可恢复性:一旦故障或失败,数据库会自动地完全恢复未完成的事务(Rollback)。
ADO.net事务处理的优缺点:
优点:简单、运行速度快、独立于数据库。
缺点:不能跨多个数据库连接。
注意:事务执行建立在数据库的连接层上,所以需要在事务过程中一直保持数据库连接。
ADO.net事务的执行步骤
1、调用OleDbConnection 对象的BeginTransaction 方法,声明事务开始。
2、将 OleDbTransaction 对象分配给要执行的OleDbCommand的 Transaction 属性。
3、执行所需的命令。
4、调用OleDbTransaction对象的Commit 方法提交事务,或调用 Rollback 方法回滚事务(即事务失败后的全部恢复)。如果在 Commit 或 Rollback 方法执行之前连接关闭或断开,事务将回滚。
实例代码:
来源官网帮助里的源码改编。
Using conn As New OleDbConnection("Provider=Microso