Foxtable(狐表)用户栏目专家坐堂 → 关于数据查询效率


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

主题:关于数据查询效率

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


加好友 发短信
等级:二尾狐 帖子:564 积分:4561 威望:0 精华:0 注册:2016/4/17 20:05:00
关于数据查询效率  发帖心情 Post By:2016/10/25 17:41:00 [只看该作者]

狐爸,用Datatable的Load查询数据,我发现,少量数据就不行了,大量数据就很吃力。下面这段代码我写时没有考虑到大数据,查询起来相当吃力,查询10000行数据时就不行,代码是针对全表内容查询的,我想提升查询效率,有木有办法呢?能不能帮忙改成后台查找?
Dim r As Row = Tables("发运通知单").Current
 Dim dt As DataTable = DataTables("发运通知单")
 Dim str As String = e.form.controls("Textbox3").Text
 If str = "" Then
 MessageBox.Show ("请输入完整的发货密钥后再查询","温馨提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
 Return
 Else
 Dim filter As String = "1=2"
 For Each c As Col In CurrentTable.Cols
    filter &= " or convert(" & c.name & ",'System.String') like '%" & str & "%'"
     
 Next
Dim count As Integer = dt.Compute("count(客户名)", filter)
 If count > 0 Then
    Tables(dt.name).Filter = filter
     e.Form.controls("TextBox5").text= r("次级客户")
     e.Form.controls("TextBox6").text= r("品种")
     e.Form.controls("TextBox7").text= r("包装")
     e.Form.controls("TextBox4").text=  r("客户名") 
     ClipBoard.SetText(e.Form.controls("Textbox4").text)   
     ElseIf count = 0 Then
     Tables(dt.name).Filter = filter
     MessageBox.Show ("没有查询到满足条件的记录","温馨提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
     ClipBoard.SetText(0)   
     End If
 CurrentTable.Filter = filter

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


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/25 17:47:00 [只看该作者]

没有看到你的代码和load有什么关系。

数据多可以分页加载。或者只查询出这个客户的数据进行操作。

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


加好友 发短信
等级:二尾狐 帖子:564 积分:4561 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2016/10/25 17:55:00 [只看该作者]

分页加载默认是加载后台所有数据,在实际操作中,我的数据是随时要更新,而且数据量庞大,有没有办法?把代码写入按钮中,直接后台查找?

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


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/25 18:01:00 [只看该作者]

谁告诉你分页加载默认是加载后台所有数据的,那分页还有什么意义。

完整看看动态加载这种内容:http://www.foxtable.com/webhelp/scr/2902.htm

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


加好友 发短信
等级:二尾狐 帖子:564 积分:4561 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2016/10/25 18:05:00 [只看该作者]

点击刷新后,所有数据都出来了。不点击的话,确实是只加载了少部分数据。另外既然是分页,就是Tables,不是DataTable,我那代码好像就只从Tables里查询。蓝老师,后来筛选的系统命令是啥?

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


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/25 20:00:00 [只看该作者]

不管是Tables还是DataTable,都可以分页。帮助的分页例子基本都是基于DataTable的。

先好好看看帮助先吧

 回到顶部