當數據庫的數據量比較大,對執行效率要求比較高的時候,我們可以考慮使用存儲過程來實現分頁,根據傳入的頁數返回需要顯示的數據表,僅僅select出當前頁的數據。(這個比使用PagedDataSource類而言效率要高。)
現在采用Repeater來實現一個數據分頁,數據庫采用SQL server2000,利用裡面的系統表Northwind。
新建存儲過程如下:
create PROCEDURE dbo.myPaging ( @pagesize int, @currentPage int, @total int output ) AS create table #temp ( ID int identity(1,1), CustomerID varchar(50), CompanyName varchar(50), ContactName varchar(50), ContactTitle varchar(50), Phone varchar(50) ) insert into #temp(CustomerID,CompanyName,ContactName,ContactTitle,Phone) select CustomerID,CompanyName,ContactName,ContactTitle,Phone from Customers select @total=(select count(*) from Customers) declare @startID int declare @endID int set @startID=(@currentpage-1)*@pagesize+1 set @endID=@currentpage*@pagesize select * from #temp where ID>=@startID and ID<=@endID GO
若不會寫存儲過程的話,可以參照網站在線生成分頁的存儲過程:http://www.webdiyer.com/AspNetPager/utility/sqlspgen.aspx