rs.last();//为什么到这一步DEBUG会停住这一步执行完毕后,指针已经在rs的结尾位置了。你的JDBC不支持双向滚动,
而在  int count = rs.getRow(); 中,rs.getRow()方法是先将rs的指针移动到头记录,然后滚动到尾记录,来得到记录的总数。由于你的JDBC不支持双向滚动,当然不能将指针重新移动rs的头记录上了!

解决方案 »

  1.   

    给SQL SERVER 升级SP补丁。
      

  2.   

    try{
       rs.next();      // if only one record
    }
    catch(Exception e){
      
    }
      

  3.   

    把sql写在那个for循环里,确实不是什么好的选择。
    JDBC已经设置为双向滚动,
    而上面的地方我一般写做:
    statement = conn.getConnection().createStatement(ResultSet.
              TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
          String s = "select * from w_club where club_id = "+clubid+"",";
          resultset = statement.executeQuery(s);另外你的rs.close();位置不对,应该是在for循环里面。