程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> asp.net下經典數據庫記錄分頁代碼

asp.net下經典數據庫記錄分頁代碼

編輯:ASP.NET基礎
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語句改為存儲過程將會更好。

   請大家積極參與討論分頁的算法,並把好的方案與大家分享。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved