以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于删除重复行,  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=38637)

--  作者:jinzhengbe
--  发布时间:2013/8/2 22:49:00
--  关于删除重复行,

Dim tt As Table =  Tables("新订单")
tt.Select(tt.Rowsel,tt.cols("订单id").Index)
syscmd.Filter.ShowRedundantValues
For i As Integer = tt.Rows.Count -1 To 0 Step -1
    tt.rows(i).Delete
Next

 

 

用上面的代码删除重复行,结果一行都没有了,

 

就是假如 表中 有 两行   a

我要的功能是点按钮后 删除一个,留下一个

 

 

现在的问题是,删除了之后一个都剩不下,麻烦哪位高人帮忙改改!!!万分感谢!!!!!


--  作者:有点甜
--  发布时间:2013/8/2 23:05:00
--  
 最后加一句切换回来就行了,只是隐藏了

 Syscmd.Table.ToggleSortAndFilter()

--  作者:有点甜
--  发布时间:2013/8/2 23:08:00
--  
 删除的参考代码

Dim t As Table =  Tables("表A")
t.Select(t.Rowsel,t.cols("第一列").Index)
syscmd.Filter.ShowRedundantValues
For i As Integer = t.Rows.Count -1 To 0 Step -1
    t.rows(i).Delete
Next
t.Datable.Save
t.filter = ""

 或者正常的删除

Dim i As Integer
For i  = DataTables("表A").DataRows.Count-1 To 0 Step -1
    Dim dr As DataRow = DataTables("表A").DataRows(i)
    Dim dr2 As DataRow = DataTables("表A").Find("第一列=\'" & dr("第一列") & "\' and 第二列=\'" & dr("第二列") & "\' and _Identify <> " & dr("_Identify"))
    If dr2 IsNot Nothing Then
        dr2.Delete
    End If
Next


--  作者:andu
--  发布时间:2013/11/11 18:26:00
--  
我崇拜你!

好厉害,每一个人像你这样给出代码啊。

--  作者:ZHX241806
--  发布时间:2013/11/11 19:13:00
--  

不错,学习!


--  作者:方沈
--  发布时间:2013/11/11 20:32:00
--  

不好意思,我代码看不懂,但是本质问题是不让重复的产生,重复的是坚决不需要的话,问题不在删除重复行,而是避免重复行.可以在列属性中设置

可以在增加行的按钮增加代码:时刷新表,增加行,最后再保存当前行.

产生的问题可能:别人增加行后,增加的行还没有保存到后台的数据库,比方"序号"100(之前时99)

                     而你增加行时,也没有刷新表,所以读取的序号的最大值是99,这时你增加行时就会产生重复的100序号

以上

第一次回复,不妥请谅解

                    


--  作者:方沈
--  发布时间:2013/11/11 20:38:00
--  

看了有点甜的回复,我的回复可能完全错误了

可能没有理解楼主的意识

 

但是在同一表中出现重复的行,那么肯定有问题