插入回滚问题 [英] Rollback problem with insert

查看:74
本文介绍了插入回滚问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述




我有一个问题,这个代码



 私有  Sub  Button1_Click( ByVal  sender  As  System。 Object  ByVal  e  As  System.EventArgs)句柄 Button1.Click 
Dim sqlcmd 作为 SqlClient.SqlCommand

Dim con As SqlClient.SqlConnection( 数据源= office\kgmEXPRESS;初始目录= KGMERP_STORES;集成安全性=真

尝试
con.Open()
sqlcmd = SqlClient.SqlCommand( begin tran ItemCreation,con)
sqlcmd.ExecuteNonQuery()

Dim cmd 作为 SqlClient.SqlCommand( 插入Item_table(Item_Name,Item_PRate)值('apple',150),con)
cmd.ExecuteNonQuery()

sqlcmd = SqlClient.SqlCommand( commit tran ItemCreation,con)
sqlcmd.ExecuteNonQuery()

Catch ex As 异常

sqlcmd = SqlClient.SqlCommand( rollback tran ItemCreation,con)
sqlcmd.ExecuteNonQuery()

结束 尝试

结束 Sub



当粗线代码执行时,如果有任何错误,我想要回滚代码异常。但我遇到了错误: ROLLBACK TRANSACTION请求没有相应的BEGIN TRANSACTION。



这是什么解决方案?



关心

解决方案

试试这个.. :)



  Dim 事务 As  SqlTransaction 
con.Open( )
transaction = con.BeginTransaction()

尝试

Dim cmd 作为 SqlClient.SqlCommand( 插入Item_table(Item_Name,Item_PRate)值('apple',150),con)
cmd.ExecuteNonQuery( )
transaction.Commit()
Catch ex As 异常

transaction.Rollback()

结束 尝试


Hi
I have one prob with this code

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim sqlcmd As New SqlClient.SqlCommand

    Dim con As New SqlClient.SqlConnection("Data Source=office\kgmEXPRESS;Initial Catalog=KGMERP_STORES;Integrated Security=True")

    Try
        con.Open()
        sqlcmd = New SqlClient.SqlCommand("begin tran ItemCreation", con)
        sqlcmd.ExecuteNonQuery()

        Dim cmd As New SqlClient.SqlCommand("Insert into Item_table(Item_Name,Item_PRate) values ('apple',150)", con)
        cmd.ExecuteNonQuery()

        sqlcmd = New SqlClient.SqlCommand("commit tran ItemCreation", con)
        sqlcmd.ExecuteNonQuery()

    Catch ex As Exception

        sqlcmd = New SqlClient.SqlCommand("rollback tran ItemCreation", con)
        sqlcmd.ExecuteNonQuery()

    End Try

End Sub


when the bold line code executes, if any error comes i want to rollback with the code in exception. But i met with error : The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION.

What is the solution for this?

Regards

解决方案

try this.. :)

   Dim transaction As SqlTransaction
   con.Open()
   transaction = con.BeginTransaction()

Try

           Dim cmd As New SqlClient.SqlCommand("Insert into Item_table(Item_Name,Item_PRate) values ('apple',150)", con)
           cmd.ExecuteNonQuery()
           transaction.Commit()
       Catch ex As Exception

          transaction.Rollback()

       End Try


这篇关于插入回滚问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆