【專案實戰】---SQL真分頁

一路向前!發表於2017-11-12

前言:

對於sql的分頁來說,有真分頁和假分頁只說,實現的方法有很多種,不同的實現效率不同。“真分頁”是效率更高,面對龐大的資料量也能輕鬆應對,但是缺點便是每次都需要和後臺互動。“假分頁”不需要和後臺互動,但是一旦面對大資料量時,載入將十分緩慢,影響使用者的體驗。這次小編通過簡單的demo給出真分頁的一種實現方法。

核心程式碼:

//查詢資料--帶條件查詢
int start = (page - 1) * rows + 1;// page:第幾頁
int end = start + rows - 1;       //rows:每頁的行數
string sql = @"select * from (select c.ID,row_number() over(order by c.ID) as num
            from dbo.Table c
            where 1=1";

            if (strID!="")
            {
                sql = sql + " and  ID like '%" + strID + "%'";
            }
            sql = sql + ") TT where TT.num between " + start + " and " + end;
            SqlParameter[] paras = new SqlParameter[] { 
                 new SqlParameter("@strID", strID),
                
            };
            dt = sqlHelper.ExecuteQuery(sql, paras, CommandType.Text);

總結:

這屬於真分頁的一種簡單的實現,將模糊查詢的引數(有必要的話加上),當前頁數page,每頁的行數rows傳到後臺,就可以實現分頁查詢,在這之前還有做一件事情,就是通過查詢利用count求出資料的總條數,這樣就能實現簡單的分頁。



相關文章