欢迎来到山村网

显示ADO.NET分页填充技术

2019-03-02 11:34:02浏览:68 来源:山村网   
核心摘要:  如果数据不经常变动,可以在DataSet中本地维护一个记录缓存,以此提高性能。例如,可以在本地DataSet中存储10页有用的数据,

  如果数据不经常变动,可以在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子句使之包含所有唯一标识符大于当前页最后一个唯一标识符的记录。

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

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

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

  SELECT TOP 10 * FROM (SELECt TOP 30 * FROM Customers ORDER BY Id ASC) AS Table1 ORDER BY Id DESC 注意:从查询中返回的结果页以降序显示。ADO.NET分页如果需要,应该重新排序。

(责任编辑:豆豆)
下一篇:

探秘不同寻常的ADO.NET参数介绍

上一篇:

使用dbms_backup_restore包修改dbname及dbid

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com