解决方案 »

  1.   

    public interface ResultSet extends Wrapper
    表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。 ResultSet 对象具有指向其当前数据行的光标。最初,光标被置于第一行之前。next 方法将光标移动到下一行;因为该方法在 ResultSet 对象没有下一行时返回 false,所以可以在 while 循环中使用它来迭代结果集。 l.search(sql).getInt("usernumber"); 楼主这里l.search(sql) 只是执行了查询,拿到了结果集,但是没有调用.next 方法,所以光标没有移动到第一行结果处,无法继续调用getInt("usernumber")
      

  2.   


      l.search(sql);
      
     if(l.search(sql).next()){
          success = true;
          id = l.search(sql).getInt("usernumber");
         }问题出在这里,你最开始使用  l.search(sql);查出结果集,为什么不用一个ResultSet来接收呢?
    你下面确实使用了nest(),但你那个是又查询了一次:l.search(sql).next(),这里确实也nest了,但是你怎么下面又重新查询一次?
    id = l.search(sql).getInt("usernumber");
    你这样明显就是重新查询的,所以当然报没有调用nest了,正确的做法是:ResultSet  resset = l.search(sql);
    if(resset != null ) {
       while(resset .nest()) {
        success = true;
        id = resset.getInt("usernumber");
    }
    }