asp mysql分页_ASP分页效果之优化

学习ASP时,必不可少的就是用到增、删、改、查四大操作。最麻烦的就是把数据库里的数据输出到客户端。数据很少的时候,比如一个数据库中就有几条,这样直接输出就可以了。但如果数据很多的时候,只靠SQL的优化就不能完成查询了。

那么,怎样才能优化查询结果呢?也许我们会想到分页,对,ASP内置组件给我们提供了RecordSet 对象,我们可以利用这个对象的几个属性,就能很方便地得到自己想要的结果了。

大部分学过ASP的朋友都能写出分页代码,那好吧,我们也这样写。

假设我们已经连上数据库。

rs.pagesize=10        '设置每页显示10条记录

page=cint(request("page"))        '使用queryscring获取当前前数

if page<1 then page=1        '当页数小于1时显示第一页

if page>rs.pagecount then page=rs.pagecount        '当页数大于最后一页时显示最后一页

myself=request.serververiables("path_info")        '获取当前页的相对路径

if page>1 then rs.absolutepage=page        '如果页数大于1则显示绝对页数

'循环输出页数

for i=1 to rs.pagecount

if rs.eof then exit for         '记录在最后一条的后面退出循环

if i=page then

response.write "  |  "&i&"  |  "

else

response.write "  |  "&i&"  |  "

end if

end for

'循环输出记录条数

for i=1 to rs.pagesize

if rs.eof then exit for

response.write rs("id")

Chinaz.com

response.write rs("user")

response.write rs("pwd")

rs.movenext

end for

'关闭数据库以及连接

rs.close

conn.close

set conn=nothing

set rs=nothing

但是,这样并不能达到最佳优化。如果我们在page后面这样输入:page=adsf 。我们就会看到出错结果,因为cint函数不能把字符串转换为整数。有时你会看到没有错误,那是因为你在数据库连接时写了这样的语句:on error resume next 。意思就是当程序出错时不影响其他语句继续执行。如果我们把这段代码给删了,就会错误。所以,我们就考虑,怎样才能不错误呢?我们可以把这样的语句:

page=cint(request("page"))

这样写:

page=strim(request("page")) Chinaz^com

if IsNumeric(page) then

page=cint(page)

else

page=1

end if

这样,当我们输入数字时,不管是小数还是其他的数,它都会转换为整数,当我们输入的是非数字时,page就等于1,这样就保证了程序不会出错了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值