以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  根据输入的内容自动查询表中的数据,数据量大怎么处理  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=42719)

--  作者:wuxianzuoji41
--  发布时间:2013/11/20 10:52:00
--  根据输入的内容自动查询表中的数据,数据量大怎么处理

Dim txt As String = e.Form.Controls("txtMingcheng").Text
Dim tbl As Table = Tables("窗口产品销售_tblChanpin")
If txt = "" Then
    tbl.Filter = ""
Else
    txt = "\'*" & txt & "*\'"
    tbl.Filter = "product_name Like " & txt

End If

 

如果 Tables("窗口产品销售_tblChanpin")有几十万或者百万级别,需要吧数据全部调出来才能处理,怎么实现不全部调出来数据,但是又不影响使用功能

 

 

 

 


--  作者:Bin
--  发布时间:2013/11/20 11:06:00
--  
呵呵,这种你别想了. 不可能不影响的.  10年后的电脑和网络带宽也许有这样的性能吧!

采用分页加载的形式吧,你看我们论坛不也是分页加载么,不可能把几十万的帖子全部加载出来的,先不说性能问题,单单是浏览查看都不方便.


--  作者:wuxianzuoji41
--  发布时间:2013/11/20 11:11:00
--  

bin,如果分页加载他也只是模糊查询的那个分页页面的数据,也不是全部的数据呀

 

除非不用表的tbl.Filter方式,而改成SQL的查询方式,只能TEXT输入完毕查询,而无法做到感应查询

[此贴子已经被作者于2013-11-20 11:16:33编辑过]

--  作者:lihe60
--  发布时间:2013/11/20 11:30:00
--  
以下是引用wuxianzuoji41在2013-11-20 10:52:00的发言:

Dim txt As String = e.Form.Controls("txtMingcheng").Text
Dim tbl As Table = Tables("窗口产品销售_tblChanpin")
If txt = "" Then
    tbl.Filter = ""
Else
    txt = "\'*" & txt & "*\'"
    tbl.Filter = "product_name Like " & txt

End If

 

如果 Tables("窗口产品销售_tblChanpin")有几十万或者百万级别,需要吧数据全部调出来才能处理,怎么实现不全部调出来数据,但是又不影响使用功能

 

 

 

 

不可能出现在几百万条信息里筛选。

 

给个思路,选按条件少量加载,再筛选。


--  作者:狐狸爸爸
--  发布时间:2013/11/20 11:49:00
--  
以下是引用wuxianzuoji41在2013-11-20 11:11:00的发言:

bin,如果分页加载他也只是模糊查询的那个分页页面的数据,也不是全部的数据呀

 

除非不用表的tbl.Filter方式,而改成SQL的查询方式,只能TEXT输入完毕查询,而无法做到感应查询

 

1、设置好分页加载。

 

2、代码改为:

Dim txt As String = e.Form.Controls("txtMingcheng").Text
Dim tbl As DataTable = Tables("窗口产品销售_tblChanpin").DataTable
If txt = "" Then
     tbl.LoadFilter = ""
Else
    txt = "\'*" & txt & "*\'"
    tbl.LoadFilter = "product_name Like " & txt

End If

tbl.Loadtop = 1000  \'假定每页1000行

tbl.Loadpage = 0

tbl.Load()


--  作者:wuxianzuoji41
--  发布时间:2013/11/20 12:20:00
--  
以下是引用狐狸爸爸在2013-11-20 11:49:00的发言:

 

1、设置好分页加载。

 

2、代码改为:

Dim txt As String = e.Form.Controls("txtMingcheng").Text
Dim tbl As DataTable = Tables("窗口产品销售_tblChanpin").DataTable
If txt = "" Then
     tbl.LoadFilter = ""
Else
    txt = "\'*" & txt & "*\'"
    tbl.LoadFilter = "product_name Like " & txt

End If

tbl.Loadtop = 1000  \'假定每页1000行

tbl.Loadpage = 0

tbl.Load()

狐狸爸爸不行呀,还是检索的是当前分页的数据,

 你说的是每1000行分1页吗

 

[此贴子已经被作者于2013-11-20 12:20:17编辑过]

--  作者:狐狸爸爸
--  发布时间:2013/11/20 12:32:00
--  

1000行一页:

 

Dim txt As String = e.Form.Controls("txtMingcheng").Text
Dim tbl As DataTable = Tables("窗口产品销售_tblChanpin").DataTable
If txt = "" Then
     tbl.LoadFilter = ""
Else
    txt = "\'*" & txt & "*\'"
    tbl.LoadFilter = "product_name Like " & txt

End If

Tables("窗口产品销售_tblChanpin").Filter = “”

tbl.Loadtop = 1000  \'假定每页1000行

tbl.Loadpage = 0

tbl.Load()


--  作者:wuxianzuoji41
--  发布时间:2013/11/20 12:49:00
--  
以下是引用狐狸爸爸在2013-11-20 12:32:00的发言:

1000行一页:

 

Dim txt As String = e.Form.Controls("txtMingcheng").Text
Dim tbl As DataTable = Tables("窗口产品销售_tblChanpin").DataTable
If txt = "" Then
     tbl.LoadFilter = ""
Else
    txt = "\'*" & txt & "*\'"
    tbl.LoadFilter = "product_name Like " & txt

End If

Tables("窗口产品销售_tblChanpin").Filter = “”

tbl.Loadtop = 1000  \'假定每页1000行

tbl.Loadpage = 0

tbl.Load()

还是不行,这个方式连任何页都查不了,什么都查不了


--  作者:狐狸爸爸
--  发布时间:2013/11/20 12:49:00
--  

用简单例子说话


--  作者:有点甜
--  发布时间:2013/11/20 20:29:00
--  
 试试这样

Dim txt As String = e.Form.Controls("txtMingcheng").Text
Dim tbl As DataTable = Tables("窗口产品销售_tblChanpin").DataTable
If txt = "" Then
     tbl.LoadFilter = ""
Else
    txt = "\'%" & txt & "%\'"
    tbl.LoadFilter = "product_name Like " & txt
End If
Tables("窗口产品销售_tblChanpin").Filter = ""
tbl.Loadtop = 1000  \'假定每页1000行
tbl.Loadpage = 0
tbl.Load()