老兄,须知:ResultSet最初是位于记录集第一行之前的!!所以第一次rs.next()显示的就是第一行。

解决方案 »

  1.   

    为什么不用一个变量判断?while的时候如果没有进入while内部,当然就是空了
      

  2.   

    使用支持JDBC2.0的JDBC驱动或用支持游标上下移动的结果集类如:IBM的结果集或者自己做一个;如果是你的那种需求,直接用while(rs.next())就行啦(空的话,不会执行循环里的)
      

  3.   

    我知道,我的项目有好几个 RS,只要有一个 RS 有记录,就表示该条件下有记录!所以我用了如
     if (rs1.next()|| rs2.next2||rs3.next())
       {  while(rs1.next()
            {   }
           
           while(rs2.next())
             {   }       while (rs3.next())
             {    }      }
      else  
          { alert ("return nothing");}  上面是我的程序流程,其实,我现在想,大不了判断 rs1,rs2,rs3 是否为空后,再将rs1,rs2,rs3 关闭,然后在打开!这样用 while(rs1.next())就行了。但愿不要这样,希望有好方法! 
      

  4.   

    先用while(rs.next())判断记录是否为空,
    这样如果不为空就到了第二条记录
    再用do{...第一次处理第一条记录.....}while(rs.next())就不会将第一条忽略过去了。
      

  5.   

    boolean isRead=false;//标志位while(rs1.next()){isRead=true;...}
    if(!isRead)while(rs2.next()){isRead=true;...}
    if(!isRead)while(rs3.next()){isRead=true;...}if(!isRead) alert("return nothing");这样不用将这些记录集关了开,或指针移来移去了吧!!
      

  6.   

      leolee(历历) 说的对,一个小时前,我也用了同你类似的方法!
      
      我的是采用一个数值标志。如
     
      int i=0;  while(rs1.next)
      { ........
        ........
        i++;
       }
      
    while(rs2.next)
      { ........
        ........
        i++;
       }
      
    while(rs3.next)
      { ........
        ........
        i++;
       }
      
    if (i==0)
      alert("return nothing");这样,如三个记录中,只要有一个有记录,则 i 就大于零了。