帮我看一下下面的这个事务处理,为什么执行成功,而数据库却改不了呢?
Dim Sqlconn As New SqlConnection
Sqlconn.ConnectionString = strConnection(此字符串连接的是本机的SQL NorthWind)
Sqlconn.Open()
Dim sqlcommand As New SqlCommand
sqlcommand.Connection = Sqlconn
Dim TransAct As SqlTransaction = Sqlconn.BeginTransaction
sqlcommand.Transaction = TransAct
Try
sqlcommand.CommandText = "Update [Order Details] set Quantity = 20 where OrderID = 10248 And ProductID = '11 ' "
sqlcommand.ExecuteNonQuery()
Catch ex As Exception
TransAct.Rollback()
End Try
调试的时候,它可以执行到sqlcommand.ExecuteNonQuery()
并且没有弹出任何错误.
我拿sqlcommand.CommandText的内容到数据库中执行,是可以正确执行的.
请问一下,我倒底错在哪儿了?
为什么总是界面上执行成功,而数据库却纹丝动呢?
盼路过的朋友指点一下,谢谢了!!!
[解决办法]
在sqlcommand.ExecuteNonQuery()后面加一句
TransAct.Commit
[解决办法]
事务没有 Commit,关闭时就自动 Rollback 了。