Foxtable(狐表)用户栏目专家坐堂 → 根据输入的内容自动查询表中的数据,数据量大怎么处理


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

主题:根据输入的内容自动查询表中的数据,数据量大怎么处理

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


加好友 发短信
等级:四尾狐 帖子:884 积分:7061 威望:0 精华:0 注册:2013/3/5 8:42:00
  发帖心情 Post By:2013/11/21 10:52: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()

 

 

有点甜和狐狸爸爸的都对,我是SQL的

另外有一个问题要咨询。

 

在帮助中我做了用Table控件模拟关联

有订单表tblsale和订单明细tblxiaoshoumingxi

 

Dim t_tblXiaoshoumingxi As Table = Tables("窗口产品销售_tblXiaoshoumingxi")
Dim t_tblSale As Table = Tables("窗口产品销售_tblSale")
With Tables("窗口产品销售_tblXiaoshoumingxi")
    If .Current Is Nothing Then
        t_tblSale.Filter =False
    Else
        t_tblSale.Filter = "sale_id= " & .Current("sale_id")
    End If
End With

 

现在订单表我用了狐狸爸爸的方法实现了动态加载,那下面的这个订单明细表怎么解决呢,我目前是吧订单明细表都加载上来,也能按照狐狸爸爸的这个方式来加载吗,试验了没弄出来,请指点一下

 

 


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


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


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


加好友 发短信
等级:四尾狐 帖子:884 积分:7061 威望:0 精华:0 注册:2013/3/5 8:42:00
  发帖心情 Post By:2013/11/22 10:52:00 [只看该作者]

bin,这个方式订单表和订单明细只是AFTERLOAD的时候用

If DataTables("订单").DataRows.Count = 0 Then '如果订单表没有数据
    DataTables(
"订单明细").LoadFilter = "订单ID Is Null" '不加载订单明细
Else
    Dim 
ids As String
    For Each 
dr As DataRow In DataTables("订单").DataRows
        
ids = ids & "," & dr("订单ID")
    Next
    
idsids.Trim(",")
    DataTables(
"订单明细").LoadFilter = "订单ID In (" & ids & ")"
End If
DataTables(
"订单明细").Load()

 

以下问题该怎么处理:

1、那么当订单分页的时候,是不是每个分页按钮下也要采用上面的代码

2、当进行模糊查询的时候,textchanged进行来订单的筛选,那这个时候对应的订单明细该怎么加载

 


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


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

1.是的
2.如果是筛选父表关联的数据,直接筛选可以了! 如果要筛选所有数据,使用LoadFilter 然后再加载一遍吧

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


加好友 发短信
等级:四尾狐 帖子:884 积分:7061 威望:0 精华:0 注册:2013/3/5 8:42:00
  发帖心情 Post By:2013/11/22 11:00:00 [只看该作者]

以下是引用Bin在2013-11-22 10:54:00的发言:
1.是的
2.如果是筛选父表关联的数据,直接筛选可以了! 如果要筛选所有数据,使用LoadFilter 然后再加载一遍吧

关于2,我要筛选订单数据,这个时候订单明细是和订单表表关联在一起的。

但是这个时候我的订单表是分页的,比如当第一页只加载了1000条和这1000条对应的明细。

我用狐狸爸爸的方法帅选了出来了订单表的数据,但是这个时候订单表明细没有,因为明细里只有订单表的第一页的1000条订单的对应的订单明细而不是全部明细

这个时候我还不能加载全部订单明细,因为数据量太大了。这个该怎么处理

 

[此贴子已经被作者于2013-11-22 11:01:40编辑过]

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


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

同样的使用LoadFilter设置加载条件 筛选啊.

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/11/22 11:24:00 [只看该作者]

加载多少个订单及其订单明细,看网速,但是加载1000个订单,这1000个订单的订单明细也应该同时加载。

分页的时候,建议不要加载1000个订单,100以内比较好。


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


加好友 发短信
等级:四尾狐 帖子:884 积分:7061 威望:0 精华:0 注册:2013/3/5 8:42:00
  发帖心情 Post By:2013/11/22 11:35:00 [只看该作者]

以下是引用Bin在2013-11-22 11:09:00的发言:
同样的使用LoadFilter设置加载条件 筛选啊.

bin,说的完全正确,所有的问题都解决了。谢谢。

 

不过通过实践,我的XEON 4核CPU4G内存。SQL 2008 r2+WIN2008 r2,订单3万条,订单明细35万条。订单加载100条一分页,订单明细动态加载,都会比较慢,在1秒之内。单机情况下,局域网没有测试。看来当数据量大的时候,比如订单明细上百万或者更多的时候

父表与子表同步加载加载是个问题,谁有高见指点一下

 

 

 


 回到顶部
总数 18 上一页 1 2