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

  所以最好在数据访层分页,如果这样就要使用存储过程来分页.以下是以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 网页后台代码中调用该存储过程,就可以获取想要的数据.