日期:2014-05-17  浏览次数:20937 次

BOF 或 EOF 中有一个是“真”,可是我的记录不是空的.
出错页代码:
=========================================================================
<!--   #include   file= "conn.asp "   -->

<%     dim   picid,piclb
picid=request( "p ")
piclb=request( "lb ")


%>
<table   width= "98% "   border= "0 "   cellspacing= "0 "   cellpadding= "0 ">
    <tr>
        <td> &nbsp; </td>
    </tr>
    <%
      dim   sql,rs                                         '问题好像就出在这里,lb直接输入参数却没事
      sql= "select   *   from   img   where   lb= '&piclb& '   order   by   id   desc "
      set   rs=cn.execute(sql)
   
j=1   '控制行数,或着你用取出的记录总数除3   做为行数
do   while   j <=40  
j=j+1
%>
<tr   align= "center "   bgcolor= "#ffffff ">  
      <%
   
        k=1  
        do   while   k <=2   and   not(rs.bof   or   rs.eof)   'k是控制列数
        k=k+1
        %>

        <td> <img   src= "upload\ <%=rs( "src ")%> "   width= "70 "   height= "70 "   border= "0 "   /> </td>
        <%  
        rs.movenext
        loop
        %>
</tr>
<%loop%>
    <tr>
        <td> &nbsp; <%=rs( "id ")%> </td>
    </tr>
</table>
=========================================================================

错误提示:
=========================================================================
错误类型:
ADODB.Field   (0x80020009)
BOF   或   EOF   中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
/uploadpic/smphoto.asp

=========================================================================
总是遇到些很意外的错误
请各位有经验的帮下忙,

------解决方案--------------------
do while k <=2 and not(rs.bof or rs.eof) 改为do while k <=2 and not(rs.bof and rs.eof)
------解决方案--------------------
另外去掉 <%=rs( "id ")%> ,要么你把它放在do while k <=2 and not(rs.bof and rs.eof) 这层循环内。因为这个时候记录集引用不存在。
------解决方案--------------------
where lb= ' "&piclb& " '
------解决方案--------------------
piclb 变量如果是字符串需要加引号,如是true 或false 可不用