显示ADO.NET分页填充技术

开发 后端
ADO.NET分页作为下一代的开发程序,代号为Orcas。最近微软推出了VS 2008 Professional测试版,涵盖了VS之前版本的所有功能,快捷键也基本完整,与将要发布的RTM版不会有什么太大的差别。

如果数据不经常变动,可以在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分页如果需要,应该重新排序。

责任编辑:chenqingxiang 来源: 计世网
相关推荐

2009-11-04 11:40:38

ADO.NET Dat

2009-11-12 10:32:47

ADO.NET技术

2009-12-25 09:59:48

ADO.NET分页

2009-12-29 15:44:11

ADO.NET检索技术

2009-12-22 17:43:26

ADO.Net技术

2009-08-13 11:22:59

LINQ和ADO.NE

2009-11-11 13:13:00

ADO.NET分页

2009-12-28 15:11:36

ADO.NET专家

2009-12-24 11:12:29

ADO.Net技术

2009-11-04 17:22:30

ADO.NET数据访问

2009-11-03 16:37:10

2011-05-20 11:31:07

ADO.NET

2009-09-14 13:37:25

LINQ ADO.NE

2009-12-31 09:54:04

ADO.NET数据访问

2009-12-22 16:23:26

ADO.NET访问

2009-12-24 11:04:21

ADO.Net技术

2009-12-24 13:38:07

ADO.NET技术

2009-12-30 15:21:55

ADO.NET访问

2010-01-04 10:48:30

ADO.NET特色

2009-11-03 17:25:59

ADO.NET编程技巧
点赞
收藏

51CTO技术栈公众号