VB.NET 中 SqlTransaction 的使用
点击次数:25 次 发布日期:2008-11-26 09:50:54 作者:源代码网
|
源代码网推荐 事务处理是由以一个单一的逻辑单位完成的一系列操作,它可以由一系列的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 源代码网推荐 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
