Foxtable(狐表)用户栏目专家坐堂 → 关联表子表明细删除完后,同步删除


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

主题:关联表子表明细删除完后,同步删除

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


加好友 发短信
等级:幼狐 帖子:136 积分:1427 威望:0 精华:0 注册:2013/8/7 18:14:00
关联表子表明细删除完后,同步删除  发帖心情 Post By:2021/7/1 18:55:00 [只看该作者]

你好,老师,我根据帮助

DataRowDeleting

正在删除一行的时候执行,这时行还未被删除。

e参数属性: 

DataTable:返回要删除行的数据表。
DataRow:  返回要删除的数据行。

示例

假定订单表和订单明细表已经建立关联,希望用户在订单明细表删除某订单的最后一个明细时,能自动删除此订单,可以将DataRowDeleting事件代码设置为:

Dim pr As DataRow = e.DataRow.GetParentRow("订单") '获得此明细对应的订单

If pr IsNot  Nothing Then '如果有对应的订单

     If pr.GetChildRows("订单明细").count  = 1 Then '且这个订单的明细只有一个了

           pr.Delete '删除这个订单

     End If

End If

在软件里这样设置,只是更改了表名,且两个表也关联了,如下图


图片点击可在新窗口打开查看此主题相关图片如下:1625136331(1).jpg
图片点击可在新窗口打开查看




图片点击可在新窗口打开查看此主题相关图片如下:1625136301.jpg
图片点击可在新窗口打开查看

但还是报错如下

.NET Framework 版本:2.0.50727.8806
Foxtable 版本:2018.10.9.1
错误所在事件:表,R03_payable_Detail3,DataRowDeleting
详细错误信息:
调用的目标发生了异常。
不能在 OnRowDeleting 事件内部调用 Delete。引发异常以取消此删除。
求老师帮忙指正


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


加好友 发短信
等级:超级版主 帖子:111421 积分:567181 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/1 20:46:00 [只看该作者]

Dim pr As DataRow = e.DataRow.GetParentRow("订单"'获得此明细对应的订单

If pr IsNot  Nothing Then '如果有对应的订单

     If pr.GetChildRows("订单明细").count  = 1 Then '且这个订单的明细只有一个了

e.DataRow("某关联列") = nothing

           pr.Delete '删除这个订单

     End If

End If


 回到顶部