多表更新有关问题
多表更新问题
数据库是 SQL SERVER
现在假设有两个表 表1 和 表2
我先用DataAdapter1 和DataAdapter2 分别将表1 和表2填充到dataTable1 和dataTable2 中, 然后进行了更新操作,现在要将结果保存回数据库中
现在请教: 怎样能实现如果其中一表保存失败时将操作回滚, 既要么两个表都更新成功,要么其中一个表保存失败时两个表都不进行更新.
如有方法,请给个VB.NET的示例代码.
------解决方案--------------------
可以参考一下:
Dim connStr As String = "连接数据库语句 "
Dim con As New SqlConnection(connStr)
con.Open()
Dim com As New SqlCommand()
Dim myTrans As SqlTransaction
myTrans = con.BeginTransaction()
com.Connection = con
com.Transaction = myTrans
Try
com.CommandText = "更新1的SQL语句 "
com.ExecuteNonQuery()
com.CommandText = "更新2的SQL语句 "
com.ExecuteNonQuery()
Next
myTrans.Commit()
MsgBox( "成功! ")
Catch ex As Exception
myTrans.Rollback()
MsgBox( "失败! ")
Finally
con.Close()
End Try
数据库是 SQL SERVER
现在假设有两个表 表1 和 表2
我先用DataAdapter1 和DataAdapter2 分别将表1 和表2填充到dataTable1 和dataTable2 中, 然后进行了更新操作,现在要将结果保存回数据库中
现在请教: 怎样能实现如果其中一表保存失败时将操作回滚, 既要么两个表都更新成功,要么其中一个表保存失败时两个表都不进行更新.
如有方法,请给个VB.NET的示例代码.
------解决方案--------------------
可以参考一下:
Dim connStr As String = "连接数据库语句 "
Dim con As New SqlConnection(connStr)
con.Open()
Dim com As New SqlCommand()
Dim myTrans As SqlTransaction
myTrans = con.BeginTransaction()
com.Connection = con
com.Transaction = myTrans
Try
com.CommandText = "更新1的SQL语句 "
com.ExecuteNonQuery()
com.CommandText = "更新2的SQL语句 "
com.ExecuteNonQuery()
Next
myTrans.Commit()
MsgBox( "成功! ")
Catch ex As Exception
myTrans.Rollback()
MsgBox( "失败! ")
Finally
con.Close()
End Try