Foxtable(狐表)用户栏目专家坐堂 → [求助]查询加载代码优化


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

主题:[求助]查询加载代码优化

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


加好友 发短信
等级:幼狐 帖子:67 积分:703 威望:0 精华:0 注册:2010/11/23 23:03:00
[求助]查询加载代码优化  发帖心情 Post By:2013/7/19 10:23:00 [只看该作者]

With DataTables("商品")
    Dim xiangz As RibbonMenu.TextBox = RibbonTabs("主信息").Groups("查询").Items("乡镇")
    Dim cunm As RibbonMenu.TextBox = RibbonTabs("主信息").Groups("查询").Items("村")
    Dim xingm As RibbonMenu.TextBox = RibbonTabs("主信息").Groups("查询").Items("姓名")
    Dim xiaob As RibbonMenu.TextBox = RibbonTabs("主信息").Groups("查询").Items("货号")
    If xiaob.text <> "" Then
        Dim cmd As New SQLCommand
        cmd.C
        cmd.CommandText ="Select Count(*) From {商品} Where [SYQQLR] Like '%" & xiangz.text & cunm.text & "%' and [DANWEI] Like '%" & xingm.text & "' and [XIAOBAN] = '" & xiaob.text & "'"
        If cmd.ExecuteScalar > 0 Then
            DataTables("商品").LoadFilter = "[SYQQLR] Like '%" & xiangz.text & cunm.text & "%' and [DANWEI] Like '%" & xingm.text & "' and [XIAOBAN] = '" & xiaob.text & "'"
            DataTables("商品").Load
        Else
            MessageBox.Show("数据不存在")
        End If
    Else
        Dim cmd As New SQLCommand
        cmd.C
        cmd.CommandText ="Select Count(*) From {商品} Where [SYQQLR] Like '%" & xiangz.text & cunm.text & "%' and [DANWEI] Like '%" & xingm.text & "'"
        If cmd.ExecuteScalar > 0 Then
            DataTables("商品").LoadFilter = "[SYQQLR] Like '%" & xiangz.text & cunm.text & "%' and [DANWEI] Like '%" & xingm.text & "'"
            DataTables("商品").Load
        Else
            MessageBox.Show("数据不存在")
        End If
       
    End If
   
End With

 

 

 

这段代码执行后经常报超时,多查几次又能查出来,但是要很长时间,求大能给我优化下


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/19 10:27:00 [只看该作者]



你数据量有多大?


cmd.CommandText ="Select Count(*) From {商品} Where [SYQQLR] Like '%" & xiangz.text & cunm.text & "%' and [DANWEI] Like '%" & xingm.text & "' and [XIAOBAN] = '" & xiaob.text & "'"

这段完全没有必要.既然你LoadFilter条件和这个一样你.你直接加载.再判断加载出来的数据是否0条.是的话就弹出提示即可



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


加好友 发短信
等级:幼狐 帖子:67 积分:703 威望:0 精华:0 注册:2010/11/23 23:03:00
  发帖心情 Post By:2013/7/19 11:20:00 [只看该作者]

数据量超过35万条

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/19 11:24:00 [只看该作者]

你加载的数据是多少条.用的什么数据源?  SQL还是ACCESS

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/19 11:27:00 [只看该作者]

为数据表需要查询的列做下索引,应该会有很大的提升

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


加好友 发短信
等级:幼狐 帖子:67 积分:703 威望:0 精华:0 注册:2010/11/23 23:03:00
  发帖心情 Post By:2013/7/19 12:08:00 [只看该作者]

是SQL的数据库,查找加载的数据从几条到几千不等,怎么做索引

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/19 12:10:00 [只看该作者]

右键添加索引, 具体可以百度一下有教程.

 回到顶部