您的位置:首页 > 编程语言 > ASP

asp.net 数据访问层使用存储过程分页

2009-12-19 23:09 211 查看
在asp.net 网页中如果在业务逻辑层分页在使用PagedDataSource对象,但如果数据记录过多,使用它会严重的损害应用程序的性能.

所以最好在数据访层分页,如果这样就要使用存储过程来分页.以下是以pubs 数据库中的employee表为例来进行数据分页的存储过程,你可以参考它根据实际情况来创建自己的存储过程.

注:@pageindex 数据页的索引,@dataperpage 每页的记录数目,@howmanyrecords 用来获取总的记录数.

create  proc getdata @pageindex int,@dataperpage int,@howmanyrecords int output
as
declare @temptable table
(
rowindex int,
emp_id char(9),
fname varchar(20),
minit char(1),
lname varchar(30)
)
insert into @temptable
select row_number() over(order by emp_id) as rowindex,emp_id,fname,minit,lname
from employee
select @howmanyrecords=count(rowindex) from @temptable
select * from @temptable --where 查询条件
where rowindex>(@pageindex-1)*@dataperpage
and rowindex<=@pageindex*@dataperpage


可以使用以下语句来获取结果:

declare @howmanyrecords int
exec getdata 2,5,@howmanyrecords output
select @howmanyrecords
--其中Row_number 函数可以给检索来的每条记录按照排序来编号.


接下来你就可以在asp.net 网页后台代码中调用该存储过程,就可以获取想要的数据.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: