以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  不能在 OnRowDeleting 事件内部调用 Delete。引发 exception 以取消此删除。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=138532)

--  作者:冷泉
--  发布时间:2019/8/2 18:53:00
--  不能在 OnRowDeleting 事件内部调用 Delete。引发 exception 以取消此删除。
错误所在事件:
详细错误信息:
不能在 OnRowDeleting 事件内部调用 Delete。引发 exception 以取消此删除。

删除子表行,提示这个是什么原因?没有同步关联删除, 子表行如果有很多行,点击删除其中一行会删除所有的行,然后弹出那个运行错误提示

这个是关联删除代码

Dim pr As DataRow = e.DataRow.GetParentRow("进货单") \'获得此明细对应的订单
If pr IsNot  Nothing Then \'如果有对应的订单
    If pr.GetChildRows("进货明细表").count = 1 Then \'且这个订单的明细只有一个了
        pr.Delete \'删除这个订单
    End If
End If



--  作者:有点蓝
--  发布时间:2019/8/2 20:45:00
--  
这几个事件有没有写代码?

BeforeDeleteDataRow删除一行之前执行。
可以在此处进行权限和条件验证,以决定是否允许删除此行。
DataRowDeleting正在删除一行的时候执行,这时行还未被删除
DataRowDeleted删除行后执行,此时行已经被删除



--  作者:冷泉
--  发布时间:2019/8/2 22:14:00
--  

DataRowDeleting   上面的代码是写在这个事件里面的


--  作者:有点蓝
--  发布时间:2019/8/2 22:26:00
--  
"进货单"表2楼几个事件有没有代码。

关联的时候有没有勾选“同步删除关联行”,如果有去掉。

--  作者:冷泉
--  发布时间:2019/8/2 22:46:00
--  
进货单表没有写上面几个事件代码,就子表明细表写了,是不是父表也要写代码?  关联删除行没有勾选
--  作者:有点蓝
--  发布时间:2019/8/2 22:51:00
--  
把代码放到BeforeDeleteDataRow试试
--  作者:冷泉
--  发布时间:2019/8/2 23:01:00
--  
可以了,谢谢老师,我是看的教程操作的,是放错了事件代码吗?