asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

asp.net下经典数据库记录分页代码


发布日期:2020年12月10日
 
asp.net下经典数据库记录分页代码

SELECT TOP PAGESIZE NEWSTITLE

FORM NEWSINFO WHERE NEWSID NOT IN

(SELECT TOP (PAGE)* PAGESIZE NEWSID FROM NEWSINFO

WHERE Auditing= and NEWSBREED=企业新闻 order by NEWSID DESC)

AND Auditing= and NEWSBREED=企业新闻 order by NEWSID DESC

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

符合 SARG的代码

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

SELECT TOP PAGESIZE NEWSTITLE

FORM NEWSINFO WHERE NEWSID <

(SELECT MIN(NEWSID) FROM (SELECT TOP (PAGE) * PAGESIZE NEWSID FROM NEWSINFO WHERE Auditing= and NEWSBREED=企业新闻 order by NEWSID DESC) AS TB)AND Auditing= and NEWSBREED=企业新闻 order by NEWSID DESC

【说明】

对于在多处使用分页功能的web 应用程序把SQL语句改为存储过程将会更好

请大家积极参与讨论分页的算法并把好的方案与大家分享

上一篇:ASP.NET数据绑定—多样的绑定方式

下一篇:ASP.NET中如何防范SQL注入式攻击