Foxtable(狐表)用户栏目专家坐堂 → [求助]如何删除重复的行?


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

主题:[求助]如何删除重复的行?

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


加好友 发短信
等级:三尾狐 帖子:622 积分:5303 威望:0 精华:0 注册:2022/4/4 14:42:00
[求助]如何删除重复的行?  发帖心情 Post By:2023/2/16 19:55:00 [只看该作者]

如图,我想删除 类别 名称 型号 单位 不含税单价 所属项目 ,内容相同的行?请问如何操作?
图片点击可在新窗口打开查看此主题相关图片如下:1113.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:三尾狐 帖子:622 积分:5303 威望:0 精华:0 注册:2022/4/4 14:42:00
回复:(moseser)[求助]如何删除重复的行?  发帖心情 Post By:2023/2/16 20:10:00 [只看该作者]

Dim i As Integer
Dim dr1 As DataRow = DataTables("历史价格").DataRows(DataTables("历史价格").DataRows.Count - 1)
Dim dr As DataRow
For i = DataTables("历史价格").DataRows.Count - 2 To 0 Step - 1
    dr = DataTables("历史价格").DataRows(i)
    If dr("类别") = dr1("类别") AndAlso dr("名称") = dr1("名称") AndAlso dr("型号") = dr1("型号") AndAlso dr("单位") = dr1("单位") AndAlso dr("不含税单价") = dr1("不含税单价")AndAlso dr("所属项目") = dr1("所属项目") Then
        dr.delete
    Else 
        DataTables("历史价格").save
        
        
        DataTables("历史价格").SQLDeleteFor( " 类别 = '" & dr1("类别") & "' and 名称 = '" & dr1("名称") & "'  and 型号 = '" & dr1("型号") & "' 单位 = '" & dr1("单位") & "'  不含税单价 = '" & dr1("不含税单价") & "' and 所属项目 = '" & dr1("所属项目") & "'   and   _Identify <> '" & dr1("_Identify") & "'  ")
        
        
        dr1 = dr
    End If 
Next



DataTables("历史价格").save
 DataTables("历史价格").SQLDeleteFor( " 类别 = '" & dr1("类别") & "' and 名称 = '" & dr1("名称") & "'  and 型号 = '" & dr1("型号") & "' 单位 = '" & dr1("单位") & "'  不含税单价 = '" & dr1("不含税单价") & "' and 所属项目 = '" & dr1("所属项目") & "'   and   _Identify <> '" & dr1("_Identify") & "'  ")

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


加好友 发短信
等级:三尾狐 帖子:622 积分:5303 威望:0 精华:0 注册:2022/4/4 14:42:00
回复:(moseser)回复:(moseser)[求助]如何删除重...  发帖心情 Post By:2023/2/16 20:10:00 [只看该作者]

如上,提示 符号缺失

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


加好友 发短信
等级:三尾狐 帖子:622 积分:5303 威望:0 精华:0 注册:2022/4/4 14:42:00
回复:(moseser)回复:(moseser)回复:(moseser)...  发帖心情 Post By:2023/2/16 20:13:00 [只看该作者]

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:
详细错误信息:
语法错误 (操作符丢失) 在查询表达式 '[类别] = '材料' and 名称 = '预制阳台板'  and 型号 = '含钢量160KG' 单位 = 'm3'  不含税单价 = '2831.86' and 所属项目 = '【演示】北京万科项目'   and   [_Identify] <> '1252'' 中。

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/2/16 20:24:00 [只看该作者]

SQLDeleteFor是多余的,去掉这句代码即可

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


加好友 发短信
等级:三尾狐 帖子:622 积分:5303 威望:0 精华:0 注册:2022/4/4 14:42:00
回复:(有点蓝)SQLDeleteFor是多余的,去掉这句代码...  发帖心情 Post By:2023/2/16 20:46:00 [只看该作者]

还是不行,有没有更高效的方法?必须这样遍历吗?

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/2/16 20:48:00 [只看该作者]

什么地方不行?如果不会使用sql,就只能这样遍历了

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


加好友 发短信
等级:九尾狐 帖子:2247 积分:18514 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2023/2/17 22:43:00 [只看该作者]

可以使用sqlcommand,把数据找出来,然后直接删除,从后台删除效率高多了。
删除完了以后,再把数据加载到界面上即可

而且最好是预设一个材料编码库, '[类别] = '材料' and 名称 = '预制阳台板'  and 型号 = '含钢量160KG' 单位 = 'm3'这就表示某一种规格型号的材料

这就可以直接用材料ID=XX,在数据库执行中,用过多的and,执行效率实在是太低了
[此贴子已经被作者于2023/2/17 22:45:08编辑过]

 回到顶部