zoukankan      html  css  js  c++  java
  • VB.NET 中 SqlTransaction 的使用

    事务处理是由以一个单一的逻辑单位完成的一系列操作,它可以由一系列的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

  • 相关阅读:
    springboot+thymeleaf+pageHelper带条件分页查询
    用JavaScript写一个简单的计算器
    运用java反射机制获取实体方法报错,java.lang.NoSuchMethodException: int.<init>(java.lang.String)
    前端页面优化
    MySQL常用dos命令
    python 学习笔记(四) 统计序列中元素出现的频度(即次数)
    python 学习笔记(二):为元组的每个元素命名,提高程序的可读性
    python 学习笔记(一):在列表、字典、集合中根据条件筛选数据
    Python 字符串前面加u,r,b,f的含义
    python3中文件操作及编码
  • 原文地址:https://www.cnblogs.com/Dream/p/31594.html
Copyright © 2011-2022 走看看