现在想在页面显示所用从数据库中查出的符合条件的值,但是又怕数据库中没有符合条件的值?
我是这样写的:
<%ResultSet rs= db.doExcuteQuery("select top 5 iId,title from info where number =1");
if(rs.next()){ 
while(rs.next()){
%>
<tr><%=rs1.getString("iId")%></tr>
<%}}else{%>
没值!!!<%}%>结果页面只有N-1个值(数据库中有N个值)???
还有就是这样写有些太复杂了,有没有更好的写法???
先谢谢大家了!!!

解决方案 »

  1.   

    你用了2个if(rs.next()),while(rs.next())这样游标就下去了,所以少了一个.去了一个就好了.
      

  2.   

    你把if去掉,写int i=0;while里面i++,然后在循环外判断i==0就没值!!.
      

  3.   

    DBmanager db = new DBmanager();
    ResultSet rs= db.doExcuteQuery("select top 5 iId,title from info where number =1");
    int i = 0;
    if(i==0){%>
    没有值存在!!!<p>
    <%}else{
    while(i++){
    %>
    <%=rs.getString("iId")%><p>
    <%}}%>
    你说的是不是这样写啊?while(i++)这行报错!!!
    Type mismatch: cannot convert from int to boolean
      

  4.   

    if(rs.next){
      do{
      }while(rs.next())
    }else{
      没有相关数据!
    }
      

  5.   

    改成<%ResultSet rs= db.doExcuteQuery("select top 5 iId,title from info where number =1");
    if(rs.next()){ <tr><%=rs1.getString("iId")%></tr>
    <%
    while(rs.next()){
    %>
    <tr><%=rs1.getString("iId")%></tr>
    <%}}else{%>
    没值!!!<%}%>
      

  6.   

    试试!!吧!!上面的人也有提示!!你的游标移到了两次
    你用
    next其实就是移了一次!!你看你判断的用了一次if,再用一次while所以少了一个记录就是第一条记录没有打印
      

  7.   

    if(rs.next()){ 
    while(rs.next()){
    %>
    if完了之后.把游标返回第一行前.就OK了.
      

  8.   

    1.赞 lip009(深蓝忧郁) ( ) 信誉:100 2.用next()的时候游标移动,详细看看doc吧.
      

  9.   

    <%ResultSet rs= db.doExcuteQuery("select top 5 iId,title from info where number =1");
    if(rs.next()){ 
    rs.beforeFirst();//在这里加上rs.beforeFirst();就不会少值了!
    while(rs.next()){
    %>
    <tr><%=rs1.getString("iId")%></tr>
    <%}}else{%>
    没值!!!<%}%>
      

  10.   

    学了那么多种循环,就会用for和while,可悲啊!
      

  11.   

    不会影响速度吧。只是封装性不好
    if(rs.next())这么写会不会出问题?如果rs为空,一调用rs.next()JSP页面不是就出现空指针了?
    还是
    if(rs != null )
    while(rs.next()){
       
    }
    比较安全吧
      

  12.   

    你不知道分开写啊 !!!!!!!!!!!!
    int i=0;
    while(rs.next){
    i = db.ExceuteQuery(sql);
    }
    if(i==0){}else{}