以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  datarowdeleting事件出错?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=29957)

--  作者:zpx_2012
--  发布时间:2013/3/17 22:55:00
--  datarowdeleting事件出错?

如题,近帮助中的说明在“订单明细”表的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

可删除订单明细表中最后一行时却出现下面的错误提示:


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

请教大家是什么原因?

 

谢谢!


--  作者:狐狸爸爸
--  发布时间:2013/3/18 8:11:00
--  
不能在datarowdeleting事件中再删除行。
--  作者:zpx_2012
--  发布时间:2013/3/18 9:57:00
--  

那请教狐爸,要实现这种需求怎么办,即关联明细表中删除最后一行时删除其关联主表,移动到BeforeDeleteDataRow

中也会提示相同的出错,但可以删除掉主表。

 


--  作者:狐狸爸爸
--  发布时间:2013/3/18 10:18:00
--  

设置关联的时候,不要选择自动删除关联行就行:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.table


--  作者:zpx_2012
--  发布时间:2013/3/18 10:54:00
--  
但我有个疑问,你这个例子中取消了同步删除关联行,为什么删除主表中的行时,又可以自动删除其下的明细表呢?是通过什么来实现的,其他表中也没有相应的代码?是不是系统本身就有这个功能,删除关联主表时,不管关联中有没有勾选都会删除其关联明细表?
--  作者:zpx_2012
--  发布时间:2013/3/18 11:22:00
--  

谢谢!

表B那个datarowdeleting事件是针对删除表B时自动删除表A中的行的,我的意思是反过来,删除表A中的行时,例子中也可以自动删表B中有关联的数据,这是怎么实现的?因为关联中已经取消了同步删除关联数据的选项?

 

其实我就想确定如果不勾选那个同步删除关联行删除主表的数据时若要同步删除关联子表的数据需不要另外写代码?


--  作者:zpx_2012
--  发布时间:2013/3/18 12:44:00
--  
但为什么狐爸上传的那个例子中,主表也没有设置任何代码,删除主表的行时其关联表也会自动删除呢?比如你删除第一行就知道了。谢谢!