Foxtable(狐表)用户栏目专家坐堂 → 级联删除,主表删除行,子表却没有删掉级联行


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

主题:级联删除,主表删除行,子表却没有删掉级联行

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/9 15:52:00 [显示全部帖子]

测试没问题,实例发上来测试。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/9 18:19:00 [显示全部帖子]

你的例子测试了一下,没问题。父表删除,子表数据会同步删除。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/9 21:52:00 [显示全部帖子]

打开项目,直接在表格里面删除主表的行,下面的子表的数据会被删除掉的。请认真测试查看。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/10 9:39:00 [显示全部帖子]

1、是根据项目id和统计id删除的,你用那两个列关联的啊;

 

2、你删除所有数据后测试;肯定没问题。

 

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/10 11:28:00 [显示全部帖子]

 

[此贴子已经被作者于2017/11/10 11:29:07编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/10 11:31:00 [显示全部帖子]

那你就不能在datarowadded事件写代码,必须在DataColChanged事件写。

 

 

If e.DataCol.name = "项目id" Then
   
    e.DataRow.save
    systemready = False
    Dim Cols1() As String ={"清单ID","单位工程","清单号","清单名称","单位","单价","数量","项目ID"}
    Dim Cols2() As String ={"清单ID","单位工程","清单号","清单名称","单位","单价","数量","项目ID"}
    For Each dr1 As DataRow In DataTables("清单").Select("项目ID= '" & e.DataRow("项目ID") & "'")
        Dim dr2 As DataRow = DataTables("完成明细").find("项目ID= '" & dr1("项目ID") & "' and 清单id= '" & dr1("清单id") & "' and 统计id = " & e.DataRow("_Identify"))
        If dr2 Is Nothing Then dr2 = DataTables("完成明细").AddNew()
        For i As Integer = 0 To Cols1.Length -1
            dr2(Cols2(i)) = dr1(Cols1(i))
        Next
        dr2("统计id") = e.DataRow("_Identify")
    Next
    systemready = True
   
   
End If


 回到顶部