事务处理在vb.net中的应用2
2009-09-04 17:29
429 查看
事务处理是由以一个单一的逻辑单位完成的一系列操作,它可以由一系列的SQL语句、SELECT、INSERT、UPDATE、DELETE组成,如果在该单位包含的操作执行完毕后没有发生错误,那么它对数据库所作的改变就是永久的了。如果一旦有错误发生,它就不会对数据库作任何修改或改变。
要定义一个事务,需要使用Begin tran命令,在这一命令之后的任何语句都将被认为是事务的一部分。命令Commit用来完成事务,并使事务对数据库所作的修改成为永久的。Rollback命令用来取消一个事务,并还原事务对数据库所作的修改。
下面是一个SQL事务的例子:
[SQL SERVER7.0 or SQL SERVER2000]
BEGIN TRAN
INSERT INTO PRODUCT(PRODUCTID, PRODUCTNAME) VALUES("0001", "KEYBOARD")
IF (@ERROR>0) ROLLBACK
UPDATE PRODUCT SET PRICE=12 WHERE PRODUCTID= "0002"
IF (@ERROR>0) ROLLBACK
COMMIT
RETURN
ERRH:
ROLLBACK
我们多数会将交易写在STORED PROCEDURE中,但是如果出现DATAGRID中的多数据更新,就需要用到.NET中的这个System.Data.SqlClient.SqlTransaction和Try...Catch...Finally...End Try来处理异常!下列代码是VB.NET 中 SqlTransaction 的使用
Dim connectionString As String = "server=localhost;database=web;uid=sa;pwd="
Dim conn As System.Data.SqlClient.SqlConnection = New System.Data.SqlClient.SqlConnection(connectionString)
Dim cmd() As System.Data.SqlClient.SqlCommand
Dim trans As System.Data.SqlClient.SqlTransaction
Dim i As Integer, k As Integer
Dim SQL() As String
k = 2
SQL(0) = "update ..."
SQL(1) = "update ..."
SQL(2) = "update ..."
trans = conn.BeginTransaction()
For i = 0 To k
cmd(i) = New System.Data.SqlClient.SqlCommand(SQL(i), conn)
cmd(i).Transaction = trans
Next
Try
For i = 0 To k
cmd(i).ExecuteNonQuery()
Next
trans.Commit()
Catch Ex As SqlException
trans.Rollback()
Finally
conn.Close()
End Try
要定义一个事务,需要使用Begin tran命令,在这一命令之后的任何语句都将被认为是事务的一部分。命令Commit用来完成事务,并使事务对数据库所作的修改成为永久的。Rollback命令用来取消一个事务,并还原事务对数据库所作的修改。
下面是一个SQL事务的例子:
[SQL SERVER7.0 or SQL SERVER2000]
BEGIN TRAN
INSERT INTO PRODUCT(PRODUCTID, PRODUCTNAME) VALUES("0001", "KEYBOARD")
IF (@ERROR>0) ROLLBACK
UPDATE PRODUCT SET PRICE=12 WHERE PRODUCTID= "0002"
IF (@ERROR>0) ROLLBACK
COMMIT
RETURN
ERRH:
ROLLBACK
我们多数会将交易写在STORED PROCEDURE中,但是如果出现DATAGRID中的多数据更新,就需要用到.NET中的这个System.Data.SqlClient.SqlTransaction和Try...Catch...Finally...End Try来处理异常!下列代码是VB.NET 中 SqlTransaction 的使用
Dim connectionString As String = "server=localhost;database=web;uid=sa;pwd="
Dim conn As System.Data.SqlClient.SqlConnection = New System.Data.SqlClient.SqlConnection(connectionString)
Dim cmd() As System.Data.SqlClient.SqlCommand
Dim trans As System.Data.SqlClient.SqlTransaction
Dim i As Integer, k As Integer
Dim SQL() As String
k = 2
SQL(0) = "update ..."
SQL(1) = "update ..."
SQL(2) = "update ..."
trans = conn.BeginTransaction()
For i = 0 To k
cmd(i) = New System.Data.SqlClient.SqlCommand(SQL(i), conn)
cmd(i).Transaction = trans
Next
Try
For i = 0 To k
cmd(i).ExecuteNonQuery()
Next
trans.Commit()
Catch Ex As SqlException
trans.Rollback()
Finally
conn.Close()
End Try
相关文章推荐
- 在VB.NET中应用SQLDMO
- VB.NET OpenXml 修改制定Worksheet的特定单元格(外加log4net应用)
- 章鱼哥—VB.NET 控件中你不知道的属性之——AllowDrop 应用详解
- 在vb.net中应用OO4O
- 在VB.NET中应用SQLDMO
- vb.net之SqlHelper的编写与应用
- [VB.NET源码]密码算法及其在信息安全中的应用
- 关于DirectX技术的未来和在VB.NET中应用的对话(微软)
- VB.net中HOOK的应用(一)
- 从VB 6到VB.NET——窗体特殊应用
- 使用vb 6和vb.net为Office应用添加工具栏和按钮
- 在VB.NET应用中使用MySQL的方法
- 浅谈VB.NET文章系列之一通过例子,浅谈反射(Reflection)的应用说明
- VB.net应用技巧6: CLR20r3错误的解决方法
- [VB.NET]单元九 WebService应用
- DataGridView控件在vb.net中的应用
- 从VB 6到VB.NET——窗体特殊应用
- [VB.NET源码]读写Excel的操作应用
- 教你如何在VB.NET中应用SQLDMO对象
- OWC 的应用 - 柱状图(VB.NET)