我怀疑你的absolute的参数是不是有问题执行后没有next了?absolute的问题也遇到过代码完全一样人家的好用我得不好用的情况一般是分页这一种,每次过多少个数据的时候。现在也没搞清楚。一般都是自己写了个absolute方法来用

解决方案 »

  1.   

    不用absolute方法的那个类,在使用时出错信息是什么,程序看上去没有问题。
      

  2.   

    我这有个absulte和next一齐使用的例子,看看是否对你有用:
    Statement ss =null;
        ResultSet  result =null;
        int rowCount ;//记录总数
        int pageCount ;//总页数
        if (conn == null){
          returnValue ="不能获得数据库连接。";
          return returnValue;
        }    StringBuffer buffer = new StringBuffer();
        try{
          ss=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
          result = ss.executeQuery(sql);      //********************根据记录集获得页面总数等信息********
          result.last();
          rowCount = result.getRow();//获得记录总数
          int tempRowCount =0;
          if(rowCount>1000){
            tempRowCount = rowCount;
            rowCount = 1000;
          }
          //计算总页数
          pageCount = (rowCount + pageSize-1)/pageSize;
          //调整待显示的页面
          if(pageWait > pageCount)
          {
            pageWait = pageCount;
          }
          //*********************************************************
          if (pageCount < 1)
          {
            errorPage errPage = new errorPage();
            returnValue = errPage.printErrorPage();
            //get stringbuffer capacity
            int bb = buffer.capacity();
            //delete stringbuffer
            buffer = buffer.delete(0,bb);
            result.close();
            ss.close() ;
            return returnValue;
          }      //*****将记录指针定位到待显示页的第一条记录上********
          result.absolute((pageWait - 1) * pageSize +1);
          //显示数据
          int i =0;      while(i < pageSize && !result.isAfterLast()){
            buffer.append("<tr>");
            buffer.append("<td align='center'>" + ((pageWait-1) * pageSize + i +1) +"</td>");
            buffer.append("<td><a href='/DetailWeb/PeopleDetail.jsp?criminal_no=" + result.getString("criminal_no") +  "'>" + result.getString("criminal_name") + "</a></td>");
             buffer.append(body+ "</td>");
            buffer.append("</tr>");
            result.next();
            i++;
          }
          buffer.append("</table></div></td></tr>");      //print page
    //convert stringbuffer to string
          returnValue =buffer.toString();
        }    catch(Exception e){
          e.printStackTrace();
          if (result!=null) result.close();
        }
        finally{
          //get stringbuffer capacity
          int bb = buffer.capacity();
          //delete stringbuffer
          buffer = buffer.delete(0,bb);
        }
        if (result!=null) result.close();
        if (ss !=null) ss.close() ;
        return returnValue;
      

  3.   

    没有absolute的函数出错信息:    不允许的操作: Unsupported syntax for refreshRow()
    absolute得参数是对的,,,用for循环进行了改变Resultset的结果,不必使用next了