Foxtable(狐表)用户栏目专家坐堂 → [求助]关于SQLCOMMAND的事务执行失败的回滚


  共有502人关注过本帖树形打印复制链接

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

帅哥哟,离线,有人找我吗?
kensou11111
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:255 积分:2347 威望:0 精华:0 注册:2011/4/25 9:23:00
[求助]关于SQLCOMMAND的事务执行失败的回滚  发帖心情 Post By:2024/1/5 16:29:00 [只看该作者]

以帮助中的例子为例,请问如果事务执行出错回滚了,代码中的2句removefor还会执行吗?

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




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


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106195 积分:540098 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/1/5 16:36:00 [只看该作者]

事务是针对SQLcommand执行的sql的,和datatable没有任何关系。

有没有执行,要看代码在哪里出错。如果代码在执行第一个removefor前出错,那就不会执行到,如果是执行最后一个removefor出错,那么第一个removefor肯定执行成功了

 回到顶部
帅哥哟,离线,有人找我吗?
kensou11111
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:255 积分:2347 威望:0 精华:0 注册:2011/4/25 9:23:00
  发帖心情 Post By:2024/1/5 16:44:00 [只看该作者]

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

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106195 积分:540098 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
kensou11111
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:255 积分:2347 威望:0 精华:0 注册:2011/4/25 9:23:00
  发帖心情 Post By:2024/1/5 17:09:00 [只看该作者]

好的,谢谢

 回到顶部