Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
Dim t1 As Date = Date.Now
Dim dic As New Dictionary(of DataRow, String)
Dim dic1 As New Dictionary(of DataRow, String)
Dim dic2 As New Dictionary(of DataRow, String)
Dim dr0 As DataRow
Dim drs As List(Of DataRow)
For Each dr As DataRow In DataTables("表A").DataRows
dr0 = DataTables("表A").Find("[第二列] = " & dr("第一列") & " And [第三列] = false" )
If dr0 isnot Nothing
dic.Add(dr,dr0("_identify")) '同下:::::::
dic1.Add(dr,dr0("第一列")) '找到的第二列对应的第一列的数字
dic2.Add(dr,dr0("第二列")) '找到的第二列等于当前行第一列的数字
dr0("第三列") = True '上面这个条件[第三列] = false是为了排除已经找到过的行
End If
Next
For Each dr As DataRow In dic.Keys
dr("第八列") = dic(dr)
Next
For Each dr As DataRow In dic1.Keys
dr("第九列") = dic1(dr)
Next
For Each dr As DataRow In dic2.Keys
dr("第十列") = dic2(dr)
Next
For Each dr As DataRow In DataTables("表A").DataRows
If dr.IsNull("第六列")
dr("第三列") = False
End If
Next
Output.Show("计算结束, 耗时: " & (Date.Now - t1).TotalSeconds & "秒") ‘我这计算结束, 耗时:245.2546秒
这是测试用的项目:(是原来狐表的例子)
下载信息 [文件大小: 下载次数: ] | |
![]() |
筛选后的效果图:
呵呵,有空再看了,先问问你的任务是啥?
呵呵,有空再看了,先问问你的任务是啥?
任务1: 玩代码···· 用sql语句也可,lxl版主看看啊····
任务2: 希望您再给咱一个提高速度方法 ····
呵呵,我测试下面的代码不到3秒,只是这样的代码似乎没有什么实用的意义吧:
Dim t1 As Date = Date.Now
Dim dic As New Dictionary(of DataRow, DataRow)
Dim lst As New List(of Integer)
Dim drs As List(of DataRow)
Dim dr1 As DataRow
For Each dr1 In DataTables("表A").DataRows
drs = DataTables("表A").Select("[第二列] = " & dr1("第一列") )
For Each dr2 As DataRow In drs
If lst.Contains(dr2("_Identify"))= False Then
lst.add(dr2("_Identify"))
dic.Add(dr1, dr2)
Exit For
End If
Next
Next
For Each dr As DataRow In dic.keys
dr1 = dic(dr)
dr("第八列") = dr1("_Identify")
dr("第九列") = dr1("第一列")
dr("第十列") = dr1("第二列")
Next
Output.Show("计算结束, 耗时: " & (Date.Now - t1).TotalSeconds & "秒")
不过我倒有个意外收获,就是逻辑列的查询非常慢,追求效率的时候可以用整数或者字符列代替逻辑列。
不过我倒有个意外收获,就是逻辑列的查询非常慢,追求效率的时候可以用整数或者字符列代替逻辑列。
受益了
4楼啊·····
羡慕啊~~~ 竟然比1楼提高速度近快50多倍了(我这里要5秒。。。。。
我再改进也只能达到百秒以内 ,只比1楼提高3倍左右~~~ 思路不对