以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 集合 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=57747) |
-- 作者:lshshlxsh -- 发布时间:2014/9/30 14:22:00 -- 集合 \'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'获取日期 \'For R As Integer =0 To Tables("统计").Rows.Count -1 \'Dim dr As DataRow \'dr = DataTables("AA").SQLFind("[编号] =\'" & Tables("统计").Rows(r)("编号") & "\' and 日期 >=\'2014-01-01\' ") \'If dr IsNot Nothing Then \'Tables("统计").Rows(R)("日期") =dr("outdate") \'End If \'Next \'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'获取日期 Dim lst1 As New List(of DataRow) lst1= DataTables("AA").SQLSelect("日期>=\'2014-01-01\' ") 以上代码数据多执行速度慢,请问集合的方式 DataTables("统计")表中 的 日期列 怎么取值
|
-- 作者:Bin -- 发布时间:2014/9/30 14:29:00 -- 你遍历那么多行 逐一用SQLFIND肯定速度慢 |
-- 作者:lshshlxsh -- 发布时间:2014/9/30 14:31:00 -- 请问怎么修改代码执行速度才快? |
-- 作者:Bin -- 发布时间:2014/9/30 14:32:00 -- 改用 SQL语句直接更新 |
-- 作者:Bin -- 发布时间:2014/9/30 14:35:00 -- update {统计},{AA} set {统计}.日期 = {AA}.outdate where {统计}.编号 = {AA}.编号 and 日期 >= \'2014-01-01\' |
-- 作者:有点甜 -- 发布时间:2014/9/30 14:38:00 -- 你一次性读取一个dt出来,然后,用find,不要用sqlfind
http://www.foxtable.com/help/topics/0696.htm
|
-- 作者:Bin -- 发布时间:2014/9/30 14:39:00 -- 最效率做法看 3 4 5楼 |
-- 作者:lshshlxsh -- 发布时间:2014/9/30 14:43:00 -- 这两张表是来自不同的数据源,且AA表为临时表 [此贴子已经被作者于2014-9-30 14:46:21编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/9/30 14:56:00 -- Dim lst1 As New List(of DataRow) lst1= DataTables("AA").SQLSelect("日期 >= \'2014-01-01\' ") For Each dr As DataRow In lst1 DataTables("统计").ReplaceFor("日期", dr("outdate"), "编号 = \'" & dr("编号") & "\'") Next |
-- 作者:Bin -- 发布时间:2014/9/30 14:56:00 -- 那用6楼的方案吧 |