服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - ASP.NET教程 - asp.net 数据访问层 存储过程分页语句

asp.net 数据访问层 存储过程分页语句

2019-06-28 13:47服务器之家 ASP.NET教程

在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 rowindex>(@pageindex-1)*@dataperpage 
and rowindex<=@pageindex*@dataperpage 

declare @howmanyrecords int 
exec getdata 2,5,@howmanyrecords output 
select @howmanyrecords 
declare @x int, @y int, @z int 
select @x = 1, @y = 2, @z=3 
select @x,@y,@z 

create proc getdata2 @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 rowindex>(@pageindex-1)*@dataperpage 
and rowindex<=@pageindex*@dataperpage 

其中Row_number 函数可以给检索来的每条记录按照排序来编号. 

接下来你就可以在asp.net 网页后台代码中调用该存储过程,就可以获取想要的数据.

延伸 · 阅读

精彩推荐