以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 两个表对比,查找并删除没有的行 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=151121) |
-- 作者:BG小白 -- 发布时间:2020/6/15 17:18:00 -- 两个表对比,查找并删除没有的行 表B对比表A,对比3个列字段,如果没有删除表B的行 我是这样写的,但是没有效果 For Each dr As DataRow In DataTables("表A").datarows \'循环表的每一行 DataTables("表B").DeleteFor("spdm<>\'" & dr("SPDM") & "\' and GG1DM<>\'" & dr("GG1DM") & "\' and MDDM<>\'" & dr("CKDM") & "\'") Next |
-- 作者:有点蓝 -- 发布时间:2020/6/15 17:27:00 -- 既然都没有了,也就是不存在,还删除什么? |
-- 作者:BG小白 -- 发布时间:2020/6/15 17:47:00 -- 说错了,表B对比表A,对比3个列字段,如果表A没有对应的行,删除表B的行 例如表B里面有一行是01,01,01,查找表A有没有01,01,01的行,如果没有,删除表B这一行
[此贴子已经被作者于2020/6/15 17:49:26编辑过]
|
-- 作者:BG小白 -- 发布时间:2020/6/15 17:51:00 -- 感觉应该先写表A变量,然后用下面的代码 For Each dr As DataRow In DataTables("表B").datarows \'循环表的每一行 DataTables("表B").DeleteFor("spdm<>\'" & 表A("SPDM") & "\' and GG1DM<>\'" & 表A("GG1DM") & "\' and MDDM<>\'" & 表A("CKDM") & "\'") Next
[此贴子已经被作者于2020/6/15 17:55:03编辑过]
|
-- 作者:BG小白 -- 发布时间:2020/6/15 17:54:00 -- 但是我写变量表Dim r As DataTable = DataTables("表A")提示我错误 For Each dr As DataRow In DataTables("表B").datarows \'循环表的每一行 DataTables("表B").DeleteFor("spdm<>\'" & 表A("SPDM") & "\' and GG1DM<>\'" & 表A("GG1DM") & "\' and MDDM<>\'" & 表A("CKDM") & "\'") Next 红色字段错误
[此贴子已经被作者于2020/6/15 17:56:02编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/6/15 20:06:00 -- DataTables("表B").sqlDeleteFor("spdm+GG1DM+MDDM not in (select SPDM+GG1DM+CKDM from {表A})") |
-- 作者:BG小白 -- 发布时间:2020/6/15 20:30:00 -- 谢谢 [此贴子已经被作者于2020/6/15 20:31:34编辑过]
|
-- 作者:BG小白 -- 发布时间:2020/6/15 20:39:00 -- .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2020.5.29.8 错误所在事件: 详细错误信息: 语法错误或违反访问规则 |
-- 作者:BG小白 -- 发布时间:2020/6/15 20:40:00 -- 提示错误!还得麻烦一下蓝老师 |
-- 作者:有点蓝 -- 发布时间:2020/6/15 21:02:00 -- 如果不是SqlServer,只能这样 Dim dr As DataRow For i As Integer = DataTables("表B").DataRows.Count - 1 To 0 Step -1 dr = DataTables("表B").DataRows(i) If DataTables("表A").Find("spdm=\'" & dr("SPDM") & "\' and GG1DM=\'" & dr("GG1DM") & "\' and CKDM=\'" & dr("MDDM") & "\'") Is Nothing Then dr.Delete End If Next |