显示ADO.NET分页填充技术

如果数据不经常变动,可以在DataSet中本地维护一个记录缓存,以此提高性能。例如,可以在本地DataSet中存储10页有用的数据,并且只有当用户浏览超出缓存第一页和最后一页时,才从数据源中查询新数据。

1) ADO.NET分页避免使用带有startRecord和maxRecords值的DataAdapter.Fill重载。当以这种方式填充DataSet时,ADO.NET分页只有maxRecords参数(从startRecord参数标识的记录开始)指定的记录数量用于填充DataSet,但无论如何总是返回完整的查询。这就会引起不必要的处理,用于读取“不需要的”记录;而且为了返回附加记录,会耗尽不必要的服务器资源。

2) 用于每次只返回一页记录的技术是创建SQL语句,将WHERE子句以及ORDER BY子句和TOP谓词组合起来。ADO.NET分页此技术取决于存在一种可唯一标识每一行的办法。当浏览下一页记录时,修改WHERE子句使之包含所有唯一标识符大于当前页最后一个唯一标识符的记录。#t#

当浏览上一页记录时,修改WHERE子句使之返回所有唯一标识符小于当前页第一个唯一标识符的记录。两种查询都只返回记录的TOP页。当浏览上一页时,需要以降序为结果排序。这将有效地返回查询的ADO.NET分页最后一页(如果需要,显示之前也许要重新排序结果)。

3) 另一项每次只返回一页记录的技术是创建SQL语句,将TOP谓词和嵌入式SELECT语句的使用结合在一起。此技术并不依赖于存在一种可唯一标识每一行的办法。使用这项技术的第一步是将所需页的数量与页大小相乘。

然后将结果传递给SQL Query的TOP谓词,该查询以升序排列。再将此查询嵌入到另一个查询中,ADO.NET分页后者从降序排列的嵌入式查询结果中选择TOP页大小。实质上,返回的是嵌入式查询的最后一页。例如,要返回查询结果的第三页(页大小是10),应该书写如下所示的命令:

 
 
  1. SELECT TOP 10 * FROM 
  2. (SELECT TOP 30 * FROM Customers ORDER BY Id ASC) AS Table1 
  3. ORDER BY Id DESC

注意:从查询中返回的结果页以降序显示。ADO.NET分页如果需要,应该重新排序。

文章题目:显示ADO.NET分页填充技术
分享地址:http://www.shufengxianlan.com/qtweb/news49/359499.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联