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


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

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

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


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

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

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


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

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

 

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

 

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


 回到顶部