Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共5 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[求助]关于SQLCOMMAND的事务执行失败的回滚

1楼
kensou11111 发表于:2024/1/5 16:29:00
以帮助中的例子为例,请问如果事务执行出错回滚了,代码中的2句removefor还会执行吗?

其实我是想知道假如我有后续的代码需要根据事务执行是否成功来操作的,应该怎么写(例如事务执行成功则 A=1,执行失败则 A=0)




图片点击可在新窗口打开查看此主题相关图片如下:搜狗截图20240105162756.png
图片点击可在新窗口打开查看

2楼
有点蓝 发表于:2024/1/5 16:36:00
事务是针对SQLcommand执行的sql的,和datatable没有任何关系。

有没有执行,要看代码在哪里出错。如果代码在执行第一个removefor前出错,那就不会执行到,如果是执行最后一个removefor出错,那么第一个removefor肯定执行成功了
3楼
kensou11111 发表于:2024/1/5 16:44:00
那么假如我有后续的代码需要根据事务执行是否成功来操作的,应该怎么写(例如事务执行成功则 A=1,执行失败则 A=0)
4楼
有点蓝 发表于:2024/1/5 17:06:00
Try
    Connections("数据源").BeginTransaction() 
'开始事务
    Dim cmd As new 
SQLCommand
    cmd.ConnectionName = 
"数据源"
    cmd.CommandText = 
"Delete From {订单} Where [订单编号] = 32"
    cmd.
ExecuteNonQuery
    cmd.CommandText = 
"Delete From {订单明细} Where [订单编号] = 32"
    cmd.
ExecuteNonQuery
    Connections("数据源").Commit 
'提交事务,所有操作生效
能够执行到这里肯定成功了
 A=1
Catch
 ex As Exception '如果出错
    Connections("数据源").Rollback() 
'回滚事务,撤销所有操作
能够执行到这里肯定失败了
A=0
End
 Try
5楼
kensou11111 发表于:2024/1/5 17:09:00
好的,谢谢
共5 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03906 s, 2 queries.