当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > asp.net下经典数据库记录分页代码

ASP.NET
在C#中导入WebBrowser控件,生成具有强名称的程序集
Asp.Net中的脚本回调和Server.Transfer页面传值
暂时性的解决datagrid控件数据绑定时候xxx字段不属于xxx表的错误
http://www.donews.net/yangwl/archive/2004/10/17/136872.aspx
Some tips for using visual studio .net
Grasshopper简介(节选)
ORACLE 常用的SQL语法和数据对象
[DNN学习所得]让IE也能实现解压缩功能(提供演示源码下载)
学习笔记之Microsoft Windows服务
关于XML:以对象模型为中心
P&P Enterprise Library Extensions
简易的字符替换,可以用于用户自我介绍输入框,简单新闻回复& etc.
缩略图多路径多格式保存
"关机/休眠/重启/注销"的类
[DNN功能]自己动手做语言包
处理WinForm多线程程序时的陷阱
获得光标在多行textbox中的行与列的函数
ADO.NET 和 ADO 的比较
vb.net类的封装,继承,多态,抽象之一
Display XML in AxSHDocVw.AxWebBrowser

ASP.NET 中的 asp.net下经典数据库记录分页代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 199 ::
收藏到网摘: n/a

1、
SELECT TOP PAGESIZE NEWSTITLE
FORM NEWSINFO WHERE NEWSID NOT IN
(SELECT TOP (PAGE-1)* PAGESIZE NEWSID FROM NEWSINFO
WHERE Auditing=1 and NEWSBREED='企业新闻' order by NEWSID DESC)
AND Auditing=1 and NEWSBREED='企业新闻' order by NEWSID DESC

其中:PAGE表示当前页数,PAGESIZE表示页的大小;这里利用了NOT IN,不复合SARG,但总比一次读取全部的记录要好的多。
2、符合 SARG的代码

针对本人的实例还有一个更好的方案:因为NEWSID字段是自增字段,对于NOT IN 语句进行如下的改造,并不影响结果。但速度提高了很多

SELECT TOP PAGESIZE NEWSTITLE
FORM NEWSINFO WHERE NEWSID <
(SELECT MIN(NEWSID) FROM (SELECT TOP (PAGE-1) * PAGESIZE NEWSID FROM NEWSINFO WHERE Auditing=1 and NEWSBREED='企业新闻' order by NEWSID DESC) AS TB)AND Auditing=1 and NEWSBREED='企业新闻' order by NEWSID DESC
【说明】
对于在多处使用分页功能的web 应用程序,把SQL语句改为存储过程将会更好。
请大家积极参与讨论分页的算法,并把好的方案与大家分享。