广

ASP.NET

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

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

    2018-05-04 21:21:24 次阅读 稿源:互联网
    广告
    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语句改为存储过程将会更好。

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

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告