爲了實現使用C#, ADO.Net
自定義分頁的解決方案,與SQL Server數據庫,讓我們假設以下細節:自定義分頁
Total Records = 1000
Page Size = 100
這將意味着有10 pages
,我用的是查詢如下:
Min and Max Id (Primary Key)
被取出使用標量查詢:
Select Min(Id), Max(Id) from Table;
Select * from Table where Id >= (Min Record) and Id < (Max Record)
這裏每一筆交易,Min and Max Record Value
增加頁面大小,直到最大記錄達到或超過實際最大值。
該解決方案對於具有連續值的自動增量/標識列可以正常工作,但讓我們假設所使用的列在值中存在間隙,但它們仍可以排序,如1000 values
介於Min = 1 and Max = 3000
之間。
我有以下可能的解決辦法,一個在下面SO link,其中一個額外的
RowId column
來達到同樣的建議。其他選項會打開一個閱讀器和閱讀記錄特定網頁,創建一個列表,從而獲取一個網頁
我最好要被執行Top <PageSize>
SQL查詢,在那裏執行從我建議的預定義的行或值開始,而不是開始,因此我將避免創建額外的列,我可以使用斷開連接的體系結構,不需要Reader。
任何建議或指針,請讓我知道如果需要澄清,對於這個問題的任何細節
使用'ROW_NUMBER' –
這就是那裏張貼在討論的SO鏈接,但我想,以避免額外的列創建。 http://stackoverflow.com/questions/758186/how-to-get-n-rows-starting-from-row-m-from-sorted-table-in-t-sql –
你可以使用這個解決方案,但添加在頂部添加一個額外的'SELECT'以排除新列,如果這是不希望的。 –