以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 醉了,5000条数据处理20分钟 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=87681) |
-- 作者:xujie80 -- 发布时间:2016/7/16 22:10:00 -- 醉了,5000条数据处理20分钟 Select Case e.DataCol.name
从当前表复制“姓名”和“户主关系”到“员工资料表”,当前表5000多行,“员工资料”表80000多行,处理要20分钟,肯定是方法问题,求大神指点。 |
-- 作者:李睿涵 -- 发布时间:2016/7/17 6:03:00 -- http://www.foxtable.com/webhelp/index.htm?page=2225.htm |
-- 作者:xujie80 -- 发布时间:2016/7/17 7:32:00 -- 不知道跨表有没有影响?正在试验中 |
-- 作者:blackzhu -- 发布时间:2016/7/17 9:02:00 -- 一次性处理5000行,用表事件当然慢,你还不如用按钮处理. |
-- 作者:kylin -- 发布时间:2016/7/17 10:53:00 -- Select Case e.DataCol.name Case "身份证号","户主姓名" Dim dr As DataRow = e.DataRow Dim pr As DataRow If dr.IsNull("身份证号") Then Else Dim filter As String filter = "身份证号 = \'" & dr("身份证号") & "\'" pr = DataTables("员工资料").Find(filter) If pr IsNot Nothing Then pr("姓名") = dr("户主姓名") pr("户主关系") = "户主" End If End If End Select 删减无关的字段,再测试一下 |
-- 作者:cbt -- 发布时间:2016/7/17 11:02:00 -- 用字典做 键值对,瞬间完成! |
-- 作者:xujie80 -- 发布时间:2016/7/17 13:18:00 -- @cbt: 能不能麻烦老兄告知一下数据字典应该如何操作? |
-- 作者:cbt -- 发布时间:2016/7/17 17:37:00 -- DataTables("表A").DataRows.Clear DataTables("表A").StopRedraw() For i As Integer = 0 To 5000 Dim dr As DataRow = DataTables("表A").AddNew dr("第一列")= "aa" & i dr("第二列")= "bb1" & i Next DataTables("表A").ResumeRedraw() DataTables("表B").DataRows.Clear DataTables("表B").StopRedraw() For i As Integer = 0 To 80000 Dim dr As DataRow = DataTables("表B").AddNew dr("第一列")= "aa" & i dr("第二列")= "bb1" & i Next DataTables("表B").ResumeRedraw() MessageBox.show("模拟数据完成") Dim zd1 As new Dictionary(of String,DataRow) Dim zd2 As new Dictionary(of String,DataRow) For Each dr As DataRow In DataTables("表A").DataRows zd1.Add(dr("第一列"),dr) Next For Each dr As DataRow In DataTables("表B").DataRows zd2.Add(dr("第一列"),dr) Next For Each str As String In zd1.Keys If zd2.ContainsKey(str) Then zd2(str)("第三列")= zd1(str)("第二列") \'赋值 End If Next MessageBox.show("数据复制完成") |
-- 作者:xujie80 -- 发布时间:2016/7/18 11:10:00 -- 高手如云,学习了,谢谢 |
-- 作者:大红袍 -- 发布时间:2016/7/19 1:13:00 -- Case "身份证号","户主姓名","粮食直补面积","粮食直补标准","粮食直补金额","农资补贴面积","农资补贴标准","农资补贴金额"
改成
Case "身份证号"
而且,你要确保,你datacolchanged事件没有其他代码会影响。 |