当前位置:编程学习 > C#/ASP.NET >>

vb.net事务

  
'A部分
dim   DataRowA=DataTableA.newrow
DataRowA.item("I")=2
DataTableA.rows.Add DataRowA'有可能出错
'B部分

dim   DataRowB=DataTableB.newrow
DataRowB.item("I")=2
DataTableB.rows.Add DataRowB'有可能出错


以上代码中如果B部分出错,希望A部分的  “DataTableA.rows.Add DataRowA ”操作取消。



--------------------编程问答-------------------- try
....
catch...
...
end try  --------------------编程问答-------------------- try...catch 只是对异常的处理,并不回滚操作.

dcNorthwind.Open()

Dim transaction1 As SqlClient.SqlTransaction
transaction1 = dcNorthwind.BeginTransaction()

daCustomers.UpdateCommand.Transaction = transaction1
daOrders.UpdateCommand.Transaction = transaction1

Try
    daCustomers.Update(dsNorthwind1)
    daOrders.Update(dsNorthwind1)
    transaction1.Commit()

Catch dbcex As DBConcurrencyException
    MessageBox.Show("Update Failed, Concurrency Exception")
    transaction1.Rollback()

Catch ex As Exception
    MessageBox.Show("Update Failed")
    transaction1.Rollback()

Finally
    dcNorthwind.Close()
End Try


这应是你想要的. --------------------编程问答-------------------- 上面的事务是数据库连接上的事务处理,是把数据提交到数据库的代码进行了事务处理。
原本的意思是在数据表DataTable类型上进行 --------------------编程问答-------------------- try 
.... 
catch... 
... 
end try 
在结构化异常处理中操作,如果发生错误,执行Datetable的取消命令(记不起方法名称,不好意思)
,将所做的操作取消!
补充:.NET技术 ,  VB.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,