轻轻松松掌握ADO.NET事务处理方法技巧

开发 后端
这里介绍了ADO.NET事务处理方法BeginTrans:开始1个事务、CommitTrans:提交事务,将事务中的操作写入数据源、RollBackTrans:滚回事务,取消操作。

事物是一组不可在分的Sql语句,在编程中也是很难解决的一个问题,我们这里就ADO.NET事务处理方法简单的介绍,希望看过可以帮你解决这方面的问题。

ADO.NET事务处理方法:
◆BeginTrans:开始1个事务;
◆CommitTrans:提交事务,将事务中的操作写入数据源。
◆RollBackTrans:滚回事务,取消操作。

#T#当同时更新多个表时,为了保证数据一致性而必须使用事务,比如有两个表,一个是支出表,一个是余额表,当支出一项费用时,支出费用增加,余额减少,需要对这两个表同时更新,但如果不用事务,倘若在更新支出表后发生错误,则余额表没有更新,不合要求。这时就要把它们封存装到一个事务里。确保多表操作的完整性。此外,也可以用它对同一个表的多步操作进行封装,使多步操作成为单个单元。

一般地,我们在BeginTrans处加一条On Error Goto ErrNum的出错捕获语句,然后在错误处理程序中使用RollBackTrans取消事务。形如:

  1. cn.BeginTrans  
  2. on Error Goto ErrNum  
  3. …更新表1  
  4. …更新表2  
  5. …  
  6. cn.CommitTrans  
  7. Exit Sub  
  8. ErrNum:  
  9. cn.RollBackTrans  
  10. msgbox //出错提示 

事务可以嵌套,由begintrans方法返回1个长整数表示当前事务是第几层,如返回1为当前事务不包含在任何事务中。CommitTrans和 RollBackTrans结束最近的BeginTrans打开的那个事务。在程序中用begintrans开始1个事务后,应使用 committrans或rollbacktrans方法结束,如果不用,则在程序结束后事务全部滚回,也就是说,系统不会自动去提交任何事务。ADO.NET事务处理方法例如:

  1. cn.BeginTrans  
  2. rst.MoveNext  
  3. cn.Execute "insert into BB values('嫖客店','aaa',0,'0','0',0,'0')"  
  4. cn.CommitTrans 

有两种情况需要说明一下:在事务中也可能出现问题,导致被迫放弃事务:一种情况是一个关健字段被锁定,不能进行写操作;另一种情况是字段值超出范围,如字段为Integer,但实际值大于32767,字段为Text,但值字串长超过32K等,这样会导致事务强迫放弃。

责任编辑:田树 来源: 博客
相关推荐

2010-01-04 13:06:50

ADO.NET事务

2009-11-04 15:05:45

ADO.NET事务

2009-09-15 16:26:46

Linq排序

2009-11-13 17:01:07

ADO.NET事务处理

2010-01-14 16:10:21

C++开发

2010-01-15 10:14:21

C++ Builder

2009-11-10 15:44:17

VB.NET常量

2010-01-20 18:17:55

C++异常问题

2010-03-01 17:32:21

Python 测试模块

2010-03-03 18:13:23

Android组成框架

2010-01-26 14:53:43

C++

2010-01-20 10:31:18

C++编程技术

2010-01-18 11:20:58

C++语言

2009-11-09 15:41:14

WCF安全性

2009-06-10 17:58:41

2017-10-27 12:00:28

MySQL数据库优化

2010-08-30 09:27:20

2015-09-22 10:31:11

2011-04-28 15:41:02

打印机卡纸

2019-11-28 10:21:01

MySQLDocker数据
点赞
收藏

51CTO技术栈公众号