请看下来代码:    .....    
        Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(strSql);
        price=rs.getFloat(4);    if(rs.next()){
        rs.close();
%>
     <tr>
        <td height="20"><div align="left"><span class="STYLE3">搜索词<span class="STYLE27"><%= textinput %></span>的搜索结果</span><span class="STYLE6">:</span></div></td>
      </tr>
  </table>
  
<%       
     ResultSet rs1=stmt.executeQuery(strSql);
 while(rs1.next()){  
%>
.....上面代码在编译成servelt时没有错误,但是再次查询却没有任何反应,这是怎么回事?
如果没有price=rs.getFloat(4);则没有这种现象了。
  不过我后面要用price的值,应该怎么做?

解决方案 »

  1.   

    price=rs.getFloat(4);
    放在rs.next()后面看看行吗!
      

  2.   

      ResultSet rs=stmt.executeQuery(strSql);
    rs的光标被置于第一行之前。next 方法将光标移动到下一行,即第一行
    这就是为什么你的get没有东西出来原因
      

  3.   

    标准错误,请参考我的文章 新手提升JSP技术能力的一点建议
      

  4.   

      谢谢您们的回答,郁闷中啊. 只学了一个月JSP,老师就叫我做购物网站,本来学的不好,又没有人带过做
    过什么项目,真的很困难的了.   对了,rs.next()是指向下一条记录,那是不是说它最后一次移动后,EOF()就为真了?
    如:
     while(rs.next()){  
           price=rs.getFloat("RealPrice");
    ...
    }
    就会有错误, 是不是这个原因?  这样的话,就想每次next()一次,price的值就随之变化就不能做到了?
      

  5.   

    首次rs.next(),指向的是第一条记录如果查询结果只有一条记录,你就只能rs.next() 一次
    再次rs.next(), 就返回 false, 这时候你再rs.get(), 就会报异常了!