本帖最后由 lxkj123 于 2010-01-28 11:14:26 编辑

解决方案 »

  1.   

    Illegal operation on empty result set你的数据集返回的是null值
    1) 检查你的sql语句 是否正确
    2) 确实无数据返回 要加异常处理
      

  2.   

    看Exception就知道,是对空数据集的操作是非法的
      

  3.   

    源程序对应:
      public static MaplePet loadFromDb(int itemid, byte position, int petid) {
            try {
                MaplePet ret = new MaplePet(itemid, position, petid);
                Connection con = DatabaseConnection.getConnection(); // Get a connection to the database
                PreparedStatement ps = con.prepareStatement("SELECT * FROM pets WHERE petid = ?"); // Get pet details..
                ps.setInt(1, petid);
                ResultSet rs = ps.executeQuery();
                if(rs.next());
                {
                ret.setName(rs.getString("name"));
                ret.setCloseness(rs.getInt("closeness"));
                ret.setLevel(rs.getInt("level"));
                ret.setFullness(rs.getInt("fullness"));
                }
                rs.close();
                ps.close();
                return ret;
            } catch (SQLException ex) {
                Logger.getLogger(MaplePet.class.getName()).log(Level.SEVERE, null, ex);
                return null;
            }
        }
      

  4.   

    //有可能rs为空
    if(rs.next()); 
      

  5.   

    if(rs.next()); //这里这么有个分号?
    if(rs != null && rs.next()){}
      

  6.   

    SELECT * FROM pets WHERE petid = id
    去数据库先查一查数据在说,你数据库没数据吧
      

  7.   

    if(rs.next())
                { 
                ret.setName(rs.getString("name")); 
                ret.setCloseness(rs.getInt("closeness")); 
                ret.setLevel(rs.getInt("level")); 
                ret.setFullness(rs.getInt("fullness")); 
                } 
    重新运行试试,保证执行的是重新编译过的class。
      

  8.   

      rs.close(); 放到finally语句试试
      

  9.   

    if(rs.next()); 
                { 
                ret.setName(rs.getString("name")); 
                ret.setCloseness(rs.getInt("closeness")); 
                ret.setLevel(rs.getInt("level")); 
                ret.setFullness(rs.getInt("fullness")); 
                } else{
    return null;
    }            return ret; 
            } catch (SQLException ex) { 
                Logger.getLogger(MaplePet.class.getName()).log(Level.SEVERE, null, ex); 
                return null; 
            }finnal{
                       rs.close(); 
                ps.close();