Foxtable(狐表)用户栏目专家坐堂 → 求助:将数据库里重复的行删掉


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

主题:求助:将数据库里重复的行删掉

帅哥哟,离线,有人找我吗?
大红袍
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/27 23:28:00 [只看该作者]

上面的代码,是针对已经加载的数据的。如果你要操作后台数据,改成sqlSelect,sqlUpdate,sqlDeleteFor 才行。

 

http://www.foxtable.com/help/topics/2900.htm

 


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/6/28 14:04:00 [只看该作者]

大红袍老师,还是一样。
Dim drs As List(Of DataRow) = DataTables("销售明细2").sqlSelec t("","_Identify2,_Identify")
Dim pdr As DataRow= Nothing
Dim flag As Boolean = False
For Each dr As DataRow In drs
    If pdr IsNot Nothing
        If dr("_Identify2") <> pdr("_Identify2") Then
            flag = False
        Else
            If dr("_Identify") <> pdr("_Identify")+1 Then
                flag = True
            End  If
            If flag = True Then
                dr("_Sortkey") = -1
            End If
        End If
    End If
    pdr = dr
Next
DataTables("销售明细2").delet efor("_Sortkey = -1")
messagebox.show("1")


图片点击可在新窗口打开查看此主题相关图片如下:6.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/6/28 14:04:00 [只看该作者]

应该删除掉一半的数据才对。

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/6/28 14:05:00 [只看该作者]

Dim pdr As DataRow= Nothing  是做什么用的呢。。。

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/6/28 14:13:00 [只看该作者]

我想是不是可以这样:
新建一列,把重复的,且是连续编号的都给予同样的赋值。那么就可以将重复的,新的字段不一样的行删掉了。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/28 14:19:00 [只看该作者]

 

Dim drs As List(Of DataRow) = DataTables("销售明细2").sqlSelect("","_Identify2,_Identify")
Dim pdr As DataRow= Nothing
Dim flag As Boolean = False
For Each dr As DataRow In drs
    If pdr IsNot Nothing
        If dr("_Identify2") <> pdr("_Identify2") Then
            flag = False
        Else
            If dr("_Identify") <> pdr("_Identify")+1 Then
                flag = True
            End  If
            If flag = True Then
                dr("_Sortkey") = -1
            End If
        End If
    End If
    pdr = dr
Next
DataTables("销售明细2").SQLUpdate(drs)
DataTables("销售明细2").Sqldeletefor("_Sortkey = -1")

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/6/28 14:36:00 [只看该作者]

没有变化:

图片点击可在新窗口打开查看此主题相关图片如下:7.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/28 15:23:00 [只看该作者]

代码没问题,上传实例说明。

 回到顶部
总数 18 上一页 1 2