如果你的结果集为空的话,那么你的这行语句就错了:
rs = resultSet.next();
你可以这么判断查询出的结果集是否为空:
rs.next();
例:
    if (rs.next()) {
      ...
    }
或者用在循环里:
    while (rs.next()) {
    }

解决方案 »

  1.   

    上面的方法也不行。因为如果正好是最后一个元素那也不能算空!!!其实要判断结果是不是空不一定要用游标的,有专门的SQL函数的哦。
    一定要用的话,那好象是逻辑判断上的错误!
      

  2.   

    判断ResultSet是否为空,就用下面的方法。
    if(rs.next())
    {
    //不为空
    }
    else
    {
    //为空
    }
      

  3.   

    // 如果返回true说明结果集不为空,
    public boolean isValidateUser(String n, String p) {    boolean rs = false;
        // boolean r1 = false;
        // boolean r2 = false;
        try {
          statement = getStatement();
          String sql = "select * from 用户信息 where 用户名='"+n+"' and 密码='"+p+"'";
          resultSet = statement.executeQuery(sql);
          rs = resultSet.next();
        
          // r1 = resultSet.isAfterLast();
          // r2 = resultSet.isBeforeFirst();
          // if(r1==false && r2==false){
          //  rs = true;
          // }
         
        }
        catch (Exception e) {
          e.printStackTrace();
        }
        finally {
          this.close();
        }
        return rs;
      }
      

  4.   

    // 如果返回为false,表示结果集为空
      

  5.   

    kkkkwx 你说的对
    rs = resultSet.next();不应该要
    我把它去掉
    但是后面的语句为什么不行呢
     r1 = resultSet.isAfterLast();
          r2 = resultSet.isBeforeFirst();
          if(r1==false && r2==false){
            rs = true;
          }
    难道java提供的方法不能用?
      

  6.   

    try{
    if(rs.isLast())
    结果集为空}
    catch(Exception err){}
      

  7.   

    你想判断是否为空,但是if (rs.next()) {
          ...
        }
    或者用在循环里:
        while (rs.next()) {
        }
    已经判断出来是否为空了!
    你还要r1 = resultSet.isAfterLast();
          r2 = resultSet.isBeforeFirst();
          if(r1==false && r2==false){
            rs = true;
          }
    做什么用?完全是多余的!
      

  8.   

    可以用if(rs.next())
    {}来判断,但根据你的因该为:
    r1=statement.execute(sql);
    if(r1)
    {
       rs=statement.executeQuery(sql);
    }
      

  9.   

    public boolean isValidateUser(String n, String p) {    boolean rs = false;
        //boolean r1 = false;
        //boolean r2 = false;
        try {
          statement = getStatement();
          String sql = "select * from 用户信息 where 用户名='"+n+"' and 密码='"+p+"'";
          resultSet = statement.executeQuery(sql);
          rs = resultSet.isLast();   
          //r1 = resultSet.isAfterLast();
          //r2 = resultSet.isBeforeFirst();
          //if(r1==false && r2==false){
          //  rs = true;
          //}
         
        }
        catch (Exception e) {
          e.printStackTrace();
        }
        finally {
          this.close();
        }
        return rs;
      }
      

  10.   

    你的rs没有返回的
    就是rs.next()直接为false就是null那!