以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 非关联表之间的数据同步,数据全部能同步,但同步删除时仅删除了商品编号,其他的删除不了? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=171624) |
-- 作者:jsbaijin -- 发布时间:2021/9/4 20:16:00 -- 非关联表之间的数据同步,数据全部能同步,但同步删除时仅删除了商品编号,其他的删除不了? 你好!请教一下 非关联表之间的数据同步,数据全部能同步,但同步删除时仅删除了商品编号,其他的删除不了? DataColChanged事件代码 Select Case e.DataCol.name Case "商品编码" Dim dr As DataRow = DataTables("库存明细").Find("商品编码 = \'" & e.OldValue & "\'") If dr Is Nothing Then dr = DataTables("库存明细").AddNew() dr("商品编码") = e.DataRow("商品编码") dr("商品类别") = e.DataRow("商品类别") dr("商品名称") = e.DataRow("商品名称") dr("规格型号") = e.DataRow("规格型号") Else dr("商品编码") = e.DataRow("商品编码") End If Case "商品名称","规格型号","商品类别" Dim dr As DataRow = DataTables("库存明细").Find("商品编码 = \'" & e.DataRow("商品编码") & "\'") If dr IsNot Nothing Then dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name) End If End Select DataRowDeleting事件代码 Dim dr As DataRow = DataTables("库存明细").Find("商品编码 = \'" & e.DataRow("商品编码") & "\'" ) If dr IsNot Nothing Then dr.Delete() End If |
-- 作者:有点蓝 -- 发布时间:2021/9/5 20:19:00 -- 肯定是可以的。所谓的同步删除,是指仅删除了商品编号这个单元格的数据?还是指删除了整行? |
-- 作者:jsbaijin -- 发布时间:2021/9/6 18:01:00 -- 你好! 我开始是将父表里的数据一齐删除时,子表里仅仅就删除了关联的列 商品编码,其他的都没有删除得了 但是我试了一下如果先删除非关联列 商品名称 商品类别 规格型号,最后删除关联列商品编码,才能同步
|
-- 作者:有点蓝 -- 发布时间:2021/9/6 20:21:00 -- 商品编码是要做关联的,肯定要最后再删除。另外如果商品编码本来有值,然后清空的,要单独判断拿出来处理 Case "商品编码" Dim dr As DataRow = DataTables("库存明细").Find("商品编码 = \'" & e.OldValue & "\'") If dr Is Nothing Then dr = DataTables("库存明细").AddNew() dr("商品编码") = e.DataRow("商品编码") dr("商品类别") = e.DataRow("商品类别") dr("商品名称") = e.DataRow("商品名称") dr("规格型号") = e.DataRow("规格型号") elseif e.newvalue is nothing then 删除子表数据 Else dr("商品编码") = e.DataRow("商品编码") End If |