网站首页  |  业界新闻  |  技术文章  |  视频教程  |  下载频道  |  程序源码  |  个人空间  |  编程论坛
 
学习型 ASP/PHP/ASP.NET 主机 30元/年 全能 ASP/PHP/ASP.NET 主机,支持月付 专业 MSSQL 数据库空间,支持月付 专业 MySQL 数据库空间,支持月付
发新话题
打印

请问下标越界是怎么回事啊!!!

请问下标越界是怎么回事啊!!!

不知道这段代码那里错了,老提示下标越界。我是想做一个分页显示数据表内容的程序,一页显示10条。请高手速达,在线等。。。。。先谢过了~
下面贴出错误报告:
错误类型:
Microsoft VBScript 运行时错误 (0x800A0009)
下标越界
/address/index.asp, 第 58 行



<%
      if not isempty(request.Form("page")) then
      page=cint(request.Form("page"))
      else
      page=1
      end if
      set rs=server.CreateObject("adodb.recordset")
      sql="select*from user"
      rs.open sql,secondconn,1,1
      if rs.eof and rs.bof then
      response.Write"<p align='center'>对不起,没有找到相关信息!</p>"
      else
      const maxperpage=10
      rs.pagesize=maxperpage
      totalrecord=rs.recordcount
      totalpage=rs.pagecount
      if page>totalpage then
      page=totalpage
      rs.absolutepage=page
      end if
      i=0
      dim truename(),nickname(),quanxian(),email(),userlogincount()
      do while not rs.eof and (i<rs.pagesize)
      i=i+1
      redim preservetruename(i),nickname(i),quanxian(i),email(i),userlogincoount(i)
      truename(i)=rs("truename")   ‘这是第58行
      nickname(i)=rs("nickname")
      if rs("quanxian")="master" then
      quanxian(i)="班级管理员"
      elseif rs("quanxian")="member" then
      quanxian(i)="班级成员"
      else
      quanxian(i)="未审核"
      end if
      email(i)=rs("email")
      userlogincount(i)=rs("logincount")
      %>
      <tr>
        <td align="center"><%=i%></td>
        <td align="center"><%=truename(i)%></td>
        <td align="center"><%=nickname(i)%></td>
        <td align="center"><%=email(i)%></td>
        <td align="center"><%=quanxian(i)%></td>
        <td align="center"><%=userlogincount(i)%></td>
      </tr>
     <%rs.movenext
      loop
     end if
     rs.close
     set rs=nothing
    %>

TOP

i=0
改成
i=1
试试

TOP

i=i+1放到rs.movenext的上面或者下面

TOP

试了,还是不行,还是说下标越界11!!

TOP

数组和RS都是从0行开始的,最大下标是记录条数-1,弄清这个问题就应该不会有问题了

TOP

i=i+1
后面加上一句
if i=11 then exit do
但个人不建议用这个做法

TOP

回复 2# 的帖子

什么意思啊,那有0行啊????那我要怎么改呢,

TOP

直接把I=I+1删除

TOP

数组下标越界吧.如果数据显示正常,倒是可以考虑加一句:On Error Resume Next

TOP

发新话题