<script>ec(2);</script> 通常在显示表中的记录的时候,由于记录很多,需要对记录进行分页显示,这里是利用sql存储过程进行分页显示 1、数据库和字段,conn.asp见 请在表中添加几条记录 2、存储过程代码 CREATE PROCEDURE dbo.getUserList @iPageCount int OUTPUT, --总页数 @iPage int, --当前页号 @iPageSize int --每页记录数 as set nocount on begin --创建临时表 create table #t (ID int IDENTITY, --自增字段 y_id int, y_username varchar(40), y_password varchar(40)) --向临时表中写入数据 insert into #t select y_id,y_username,y_password from dbo.[user] order by y_id desc --取得记录总数 declare @iRecordCount int set @iRecordCount = @@rowcount --确定总页数 IF @iRecordCount%@iPageSize=0 SET @iPageCount=CEILING(@iRecordCount/@iPageSize) ELSE SET @iPageCount=CEILING(@iRecordCount/@iPageSize) 1 --若请求的页号大于总页数,则显示最后一页 IF @iPage > @iPageCount SELECT @iPage = @iPageCount --确定当前页的始末记录 DECLARE @iStart int --start record DECLARE @iEnd int --end record SELECT @iStart = (@iPage - 1) * @iPageSize SELECT @iEnd = @iStart @iPageSize 1 --取当前页记录 select * from #t where ID>@iStart and ID<@iEnd --删除临时表 DROP TABLE #t --返回记录总数 return @iRecordCount end GO 3、显示记录list2.asp <!--#include file="conn.asp"--> <% '**调用分页存储过程** DIM pagenow,pagesize,pagecount,recordcount DIM MyComm,MyRst pagenow =Request("pn") '自定义函数用于验证自然数 if pagenow = "" then pagenow = 1 pagenow=CInt(pagenow) pagesize = 2 Set MyComm = Server.CreateObject("ADODB.Command") with MyComm .ActiveConnection = conn 'conn是数据库连接字串 .CommandText = "getUserList" '指定存储过程名 .CommandType = 4 '表明这是一个存储过程 .Prepared = true '要求将SQL命令先行编译 '返回值(记录总量) .Parameters.Append .CreateParameter("RETURN",2,4) '出参(总页数) .Parameters.Append .CreateParameter("@iPageCount",3,2) '入参(当前页号) .Parameters.append .CreateParameter("@iPage",3,1,4,pagenow) '入参(每页记录数) .Parameters.append .CreateParameter("@iPageSize",3,1,4,pagesize) Set rs = .Execute end with if rs.state = 0 then '未取到数据,rs关闭 recordcount = -1 else rs.close '注意:若要取得参数值,需先关闭记录集对象 recordcount = MyComm(0) pagecount = CInt(MyComm(1)) if cint(pagenow)>=cint(pagecount) then pagenow=pagecount end if Set MyComm = Nothing '以下显示记录 if recordcount = 0 then Response.Write "无记录" elseif recordcount > 0 then rs.open Do While Not rs.eof response.write rs("y_id")&":"&rs("y_username")&"----"&rs("y_password")&"<br>" rs.movenext loop '*****************************分页代码********************** If pagenow>1 Then response.write "<a href=""?pn=1"">首页</a> " Else response.write "首页 " End If If pagenow>1 Then response.write "<a href=""?pn="&pagenow-1&""">上一页</a> " Else response.write "上一页 " End If If pagenow<pagecount Then response.write "<a href=""?pn="&pagenow 1&""">下一页</a> " Else response.write "下一页 " End If If pagenow<pagecount Then response.write "<a href=""?pn="&pagecount&""">尾页</a> " Else response.write "尾页 " End if else 'recordcount=-1 Response.Write "参数错误" end If '*********************结束***************************** %> 4、 5、完成,运行list2.asp文件,就可以看到内容了,点击 首页,上一页,下一页,尾页来体验分页的感觉。
|