主题:  do while not rs.eof or rs.bof

shangrila_5d

职务:普通成员
等级:1
金币:0.0
发贴:31
#12004/10/30 16:59:18
各位大虾,小弟在写程序过程中遇到了一个问题
在分页程序中,最后一页的显示会出现这个问题
ADODB.Field (0x80020009)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
应该是指针读取了一个不存在的记录,也就是 do while 循环多执行了一次 怎么解决
在线等待



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#22004/10/30 17:22:35
do while not(rs.eof and rs.bof)

不过一般 not(rs.eof)就可以了
因改指针一版都是movenext的

编辑历史:[此帖最近一次被 allinhands 编辑过(编辑时间:2004-10-30 18:31:36)]


蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#32004/10/30 20:04:38
或者:

For i = 1 to rs.PageSize
    If rs.Eof Then Exit For
    ......

    rs.MoveNext
Next


非常大鱼

shangrila_5d

职务:普通成员
等级:1
金币:0.0
发贴:31
#42004/10/31 16:25:20
是我参数传递的问题,我不应该在分页程序中用rs("")在提取记录中的字段,因为,在rs.eof的时候,最后一个记录中rs.("")是空的,所以才会出现这个问题,所以换一种用法就可以了,show.asp?page=1&bigclassid=<%=rs("bigclassid")%>改为

show.asp?page=1&bigclassid=<%=bigclassid%>
事先定义bigclassid
all is ok