软件下载 | 资讯教程 | 最近更新 | 下载排行 | 一键转帖 | 发布投稿
您的位置:最火下载站 > 网络编程 > ASP教程 > 分页那回事?

分页那回事?

  烈火网(LieHuo.Net)教程 混在web上,那有不同分页打交道的,分页偏偏又是一个硬伤,总是不能找到一个通用的解决方法,即使用上分页自定义/用户控件感觉还是少了点什么,性能.

  web页面一次一般显示10行数据为好,但往往很多时候我们从数据库中查出来上万条数据,这个时候我们要在上万条数据中显示10条,那就必须分页.分页的第一问题就是分页数据.

  1.分页数据:分页的数据分为两种,一种是在数据库中只取需要的10条数据,这也是性能提升的标致,一种是全盘拖出,放到程序缓存中再用程序来分页.

  1.1 第一种取数据方式有select top [PageSize] * from [Table] where id not in(select top [CurrentPage-1] [PageSize] id from [Table] ----用于access,mssql当中

  另一种是存储过程,这也是最快的取数据方式

以下为引用的内容:
ALTER PROCEDURE GetAuthors
@PageIndex int,
@PageSize int
AS
BEGIN
-- Set the page bounds
DECLARE @PageLowerBound int
DECLARE @PageUpperBound int
DECLARE @TotalRecords int
SET @PageLowerBound = @PageSize * (@PageIndex-1)
SET @PageUpperBound = @PageSize*@PageIndex-1

-- Create a temp table TO store the select results
CREATE TABLE #PageIndexForAuthors
(
IndexId int IDENTITY (0, 1) NOT NULL,
au_id varchar(11),
au_lname varchar(40),
au_fname varchar(20),
phone char(12),
address varchar(40),
city varchar(20),
state char(2),
zip char(5),
contract bit
)

-- Insert into our temp table
INSERT INTO #PageIndexForAuthors
(au_id ,au_lname,au_fname,phone,address,city,state,zip,contract)
SELECT *
FROM authors
ORDER BY au_id

SELECT @TotalRecords = @@ROWCOUNT

SELECT * FROM #PageIndexForAuthors
WHERE IndexId between @PageLowerBound AND @PageUpperBound
ORDER BY au_id
RETURN @TotalRecords
END

  GO上面这段存储过程是仿微软的写法,微软在Membership里面采用也是这存储过程分页.

相关阅读
栏目导航
推荐软件