Foxtable(狐表)用户栏目专家坐堂 → [求助]后台查询代码效率


  共有1273人关注过本帖树形打印复制链接

主题:[求助]后台查询代码效率

帅哥哟,离线,有人找我吗?
liuyixin662
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:505 积分:4185 威望:0 精华:0 注册:2012/11/28 16:03:00
[求助]后台查询代码效率  发帖心情 Post By:2017/8/15 14:35:00 [只看该作者]

老师你好,后台查询代码加上下列代码后,时间比原来长了12秒,麻烦老师修改一下

For Each dr3 As DataRow In DataTables("销售订单未交_销售未交统计").DataRows
    Dim pr3 As DataRow = DataTables("产品信息表").sqlfind("产品编号='" & dr3("产品编号") & "'")
    If pr3 IsNot Nothing Then
        dr3("材料编号") =pr3 ("材料编号")
        dr3("材料名称") =pr3 ("材料名称")
        dr3("规格型号") =pr3 ("规格型号")
        dr3("部件用料长度mm") =pr3 ("部件用料长度mm")
    End If
Next


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/15 14:37:00 [只看该作者]

你的产品信息表数据量很大吗?为什么不加载全部后查询?

 

DataTables("产品信息表").loadfilter = ""
DataTables("产品信息表").load
For Each dr3 As DataRow In DataTables("销售订单未交_销售未交统计").DataRows
    Dim pr3 As DataRow = DataTables("产品信息表").find("产品编号='" & dr3("产品编号") & "'")
    If pr3 IsNot Nothing Then
        dr3("材料编号") =pr3 ("材料编号")
        dr3("材料名称") =pr3 ("材料名称")
        dr3("规格型号") =pr3 ("规格型号")
        dr3("部件用料长度mm") =pr3 ("部件用料长度mm")
    End If
Next


 回到顶部
帅哥哟,离线,有人找我吗?
liuyixin662
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:505 积分:4185 威望:0 精华:0 注册:2012/11/28 16:03:00
  发帖心情 Post By:2017/8/15 14:45:00 [只看该作者]

是的,我的产品信息表数据量很大

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/15 14:49:00 [只看该作者]

Dim idxs As String = ""
For Each dr3 As DataRow In DataTables("销售订单未交_销售未交统计").DataRows
    idxs &= "'" & dr3("产品编号") & "',"
Next

Dim cmd As new SQLCommand
cmd.ConnectionName = "数据源名"
cmd.CommandText = "select * from {产品信息表} where 产品编号 in ('" & idxs.trim(",") & "')"
Dim dt As DataTable = cmd.ExecuteReader
For Each dr3 As DataRow In DataTables("销售订单未交_销售未交统计").DataRows
    Dim pr3 As DataRow = dt.find("产品编号='" & dr3("产品编号") & "'")
    If pr3 IsNot Nothing Then
        dr3("材料编号") =pr3 ("材料编号")
        dr3("材料名称") =pr3 ("材料名称")
        dr3("规格型号") =pr3 ("规格型号")
        dr3("部件用料长度mm") =pr3 ("部件用料长度mm")
    End If
Next


 回到顶部
帅哥哟,离线,有人找我吗?
liuyixin662
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:505 积分:4185 威望:0 精华:0 注册:2012/11/28 16:03:00
  发帖心情 Post By:2017/8/15 14:58:00 [只看该作者]

DataTables("销售订单未交_销售未交统计") 是从5个表的数据中提取的,没有加上代码时  ,用时是8秒

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/15 15:00:00 [只看该作者]

4楼的代码耗时多少?如果也太耗时,你就需要把 【销售订单未交_销售未交统计】 改成后台表,直接和产品表连接查询得到结果。

 回到顶部
帅哥哟,离线,有人找我吗?
liuyixin662
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:505 积分:4185 威望:0 精华:0 注册:2012/11/28 16:03:00
  发帖心情 Post By:2017/8/15 15:39:00 [只看该作者]

语法错误
图片点击可在新窗口打开查看此主题相关图片如下:语法错误.bmp
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/15 15:42:00 [只看该作者]

你的产品编号有单引号?如果有修改代码

 

idxs &= "'" & dr3("产品编号").replace("'", "''") & "',"

 

如果没有,本身代码不应该有问题的。


 回到顶部