以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  删除重复行速度很慢  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=171487)

--  作者:BG小白
--  发布时间:2021/8/31 21:50:00
--  删除重复行速度很慢
Dim i As Integer
For i  = DataTables("清点明细").DataRows.Count-1 To 0 Step -1
    Dim dr As DataRow = DataTables("清点明细").DataRows(i)
    Dim dr2 As DataRow = DataTables("清点明细").Find("清点日期 = \'" & rq & "\' And 编号 = \'" & dr("编号") & "\' and _Identify > " & dr("_Identify"))
    If dr2 IsNot Nothing Then
        dr2.Delete
    End If
Next

我用上面的代码删除重复行,大概2万行左右,现在已经卡住半小时左右了,删除重复行有更好的方式吗?

--  作者:有点蓝
--  发布时间:2021/8/31 22:09:00
--  
看看:http://www.foxtable.com/webhelp/topics/2225.htm

或者
Tables("清点明细").StopRedraw
Tables("清点明细").filter = "清点日期 = \'" & rq & "\'"
Tables("清点明细").sort = “编号
For i as integer  = Tables("清点明细").Rows.Count-1 To 1 Step -1
    If Tables("清点明细").Rows(i)("编号") = Tables("清点明细").Rows(i-1)("编号") Then
        Tables("清点明细").Rows(i).Delete
    End If
Next
Tables("清点明细").ResumeRedraw

--  作者:BG小白
--  发布时间:2021/8/31 22:43:00
--  
额,两种办法都是相当的快啊
DataTables("sptpb").AddNew
表A的数据复制到表B,用上面这个代码的话,还有更快的方法吗?

--  作者:有点蓝
--  发布时间:2021/8/31 22:51:00
--  
http://www.foxtable.com/webhelp/topics/0680.htm
--  作者:BG小白
--  发布时间:2021/9/1 1:39:00
--  
Dim mda As New MySql.Data.MySqlClient.MySQLDataAdapter("sel ect distinct spdm,pic_name from ipos_sptpk" , conn) \'这里可以设置你的查询语句
Dim ds As New System.Data.DataSet()
mda.Fill(ds, "TableTemp") \'MySQLDataAdapter方法把数据放到一个新建的临时表里,这个临时表名可自定义,我这里写TableTemp

For Each r As System.Data.DataRow In ds.Tables(0).Rows
    Dim dr As DataRow = DataTables("SPTP").AddNew()
    dr("spdm") = r("spdm")
    dr("pic_name") = r("pic_name")
Next
conn.close

dim f As New Filler
f
.SourceTable = DataTables("订单"\'指定数据来源  
f
.SourceCols = "产品,客户" \'指定数据来源列
f
.DataTable = DataTables("统计"\'指定数据接收表
f
.DataCols = "产品,客户" \'指定数据接收列
f
.Fill() 
\'填充数据

黄色的部分不知道该怎么写,之前的写法是蓝色的部分,好像这种临时表,只能用遍历的方式,但是查到下面这种方式,就是黄色方式怎么修改都不对,蓝老师帮我看下有办法不


Dim dt As new System.Data.DataTable
cmd = new MySql.Data.MySqlClient.MySqlCommand("sel ect distinct spdm,pic_name from ipos_sptpk" , conn) 
sdr = cmd.ExecuteReader()

conn.close

--  作者:有点蓝
--  发布时间:2021/9/1 8:39:00
--  
这种情况只能遍历。Filler仅支持foxtable的表格