以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 加载数据,不理解呀!  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=30571)

--  作者:lsy
--  发布时间:2013/3/30 14:20:00
--  [求助] 加载数据,不理解呀!

两个按钮,代码如下:

一、初始加载

DataTables("行政区域").LoadTop = "10"
DataTables("行政区域").Load()

二、刷新

DataTables("行政区域").LoadFilter = ""
DataTables("行政区域").Load()

 

直接点第二个按钮,加载全部;点了第一个按钮,再点第二个按钮,也只能加载10行了,难道只能在第一个加载的基础上加载,不能从DataTable重新加载?

这问题又该如何解决呢?


--  作者:lsy
--  发布时间:2013/3/30 14:31:00
--  
以下是引用muhua在2013-3-30 14:27:00的发言:

DataTables("行政区域").LoadTop = "10"

 

这个是设置 DataTables 的条数的,如果第二个按钮要加载全部,那就要

 

 

DataTables("行政区域").LoadTop = ""

DataTables("行政区域").Load()

还是觉得有点怪怪的,这两个按钮应该没联系才对。

 

谢谢,实践证明你是对的,那就以你为标准。

 

再试的结果是:

如果第一个按钮与第二个按钮都用LoadTop,或者都用LoadFilter,就没问题,如果不一致,第二个按钮就受第一个按钮的制约。

[此贴子已经被作者于2013-3-30 14:46:59编辑过]

--  作者:lsy
--  发布时间:2013/3/30 15:19:00
--  

测试了三种查找最大号的方法。

第一个最快:

Dim s As String = DataTables("数据字典").Compute("Max(编号)")
DataTables("数据字典").LoadFilter = "编号 = \'" & s & "\'"
DataTables("数据字典").Load()

第二个似乎稍慢,不明显:

DataTables("数据字典").LoadOrder = "编号 Desc"
DataTables("数据字典").LoadTop = "1"
DataTables("数据字典").Load()

第三个慢的让人烦躁了:

Dim dr As DataRow = DataTables("数据字典").Find("编号 = max(编号)")
DataTables("数据字典").LoadFilter = "编号 = \'" & dr("编号") & "\'"
DataTables("数据字典").Load()


--  作者:狐狸爸爸
--  发布时间:2013/3/30 15:23:00
--  
你的都不对,这样才对:
 
 
Dim ld As Long
Dim cmd As New SQLCommand
cmd.CommandText = "Select Max(编号) From {订单}"
ld = cmd.ExecuteScalar()

--  作者:lsy
--  发布时间:2013/3/30 15:28:00
--  
以下是引用狐狸爸爸在2013-3-30 15:23:00的发言:
你的都不对,这样才对:
 
 
Dim ld As Long
Dim cmd As New SQLCommand
cmd.CommandText = "Select Max(编号) From {订单}"
ld = cmd.ExecuteScalar()

呵呵,我是测试查找效率,不是真正来找最大编号,Sql,不绕弯,直奔主题,当然最快了。

管理外部数据源,尽量用SQL,谢谢你。

[此贴子已经被作者于2013-3-30 15:31:05编辑过]