以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]查询加载代码优化  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=38081)

--  作者:puyouliang
--  发布时间: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
--  发布时间: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
--  发布时间:2013/7/19 11:20:00
--  
数据量超过35万条
--  作者:Bin
--  发布时间:2013/7/19 11:24:00
--  
你加载的数据是多少条.用的什么数据源?  SQL还是ACCESS
--  作者:Bin
--  发布时间:2013/7/19 11:27:00
--  
为数据表需要查询的列做下索引,应该会有很大的提升
--  作者:puyouliang
--  发布时间:2013/7/19 12:08:00
--  
是SQL的数据库,查找加载的数据从几条到几千不等,怎么做索引
--  作者:Bin
--  发布时间:2013/7/19 12:10:00
--  
右键添加索引, 具体可以百度一下有教程.