我用rs.next()来识别好象不对,我代码如下:
    <table border="0" cellpadding="0" cellspacing="0" width="95%" bgcolor="#F6F6F6">
   <%   
    if(rs.next())
       {
        while (rs.next())
        {
         checkstr="";
         if(rs.getInt("MustWrite")==1)
           checkstr=" checked ";
         else
           checkstr="";
    %>
          <tr>
            <td width="100%"><input type="checkbox" name="mustwrite" value="<%=rs.getInt("SetFieldID") %>" <%=checkstr%>><%=rs.getString("FieldName") %></td>
          </tr>
      <%
          
        }
      }
      
     else
       {
     %>
          <tr>
            <td width="100%">没有记录</td>
          </tr>
     <%
       }
       rs.close();
     %>         
    </table>
可如果用rs.next()来判断有没记录时,如有记录,则在下面用while显示记录时,记录已指向第二条,也就说,第一条记录显示不了(我个人觉得好象在执行if(rs.next())时指针就已移到下一条记录了).而我是希望只是识别一下,如有记录就全显示,如没有记录就显示"没有记录",这该怎么实现?

解决方案 »

  1.   

    楼上不对,没有记录并不代表rs==null
    所以你可以这样判断
    if(rs.next())
           {
            rs2.beforeFirst();
            while (rs.next())
      

  2.   

    楼上不对,没有记录并不代表rs==null
    所以你可以这样判断
    if(rs.next())
           {
            rs.beforeFirst();
            while (rs.next())
      

  3.   

    <table border="0" cellpadding="0" cellspacing="0" width="95%" bgcolor="#F6F6F6">
       <%   
    int i = 0;
    while (rs.next())
            {
     i++;
             checkstr="";
             if(rs.getInt("MustWrite")==1)
               checkstr=" checked ";
             else
               checkstr="";
        %>
              <tr>
                <td width="100%"><input type="checkbox" name="mustwrite" value="<%=rs.getInt("SetFieldID") %>" <%=checkstr%>><%=rs.getString("FieldName") %></td>
              </tr>
          <%
              
            }
    if(i==0){
         %>
              <tr>
                <td width="100%">没有记录</td>
              </tr>
         <%
    }
           rs.close();
         %>         
        </table>这样就可以了
      

  4.   

    如果记录为空的话,rs.next()为假,这样就可以判断了,反之也一样
      

  5.   

    你可以用上面的先用if(rs.next())的判断再用while(rs.next())
    你也可以用傻一点的方法,先用相同查询语句查,把指针指到最后一行,读取出有多少条记录,其实这个在分页中可以用到.
    result=db.getRs(str);
    result.last(); //将光标定位到最后一条记录
    rowCount=result.getRow(); //获取所有记录的总行数
    再用rowCount判断一下就可以.当其不为0的时候你就可以执行下面的while(rs.next())了.
    道理相同,要达到的目的也差不多,只是方法不同罢了.
      

  6.   

    代码如下:
        <table border="0" cellpadding="0" cellspacing="0" width="95%" bgcolor="#F6F6F6">
       <%   
        if(rs.next())
           {
             checkstr="";
             if(rs.getInt("MustWrite")==1)
               checkstr=" checked ";
             else
               checkstr="";
        %>
              <tr>
                <td width="100%"><input type="checkbox" name="mustwrite" value="<%=rs.getInt("SetFieldID") %>" <%=checkstr%>><%=rs.getString("FieldName") %></td>
              </tr>
          <%
    while (rs.next())
            {
             checkstr="";
             if(rs.getInt("MustWrite")==1)
               checkstr=" checked ";
             else
               checkstr="";
        %>
              <tr>
                <td width="100%"><input type="checkbox" name="mustwrite" value="<%=rs.getInt("SetFieldID") %>" <%=checkstr%>><%=rs.getString("FieldName") %></td>
              </tr>
          <%          
            }
          }      
         else
           {
         %>
              <tr>
                <td width="100%">没有记录</td>
              </tr>
         <%
           }
           rs.close();
         %>         
        </table>虽然笨了点,但是能够满足你的要求