把这句:sqlRst.next(); 放到:<%=sqlRst.getString("id")%>"><%=sqlRst.getString("id")%>"> 前面:<%
if(intPageCount>0){  
//将记录指针定位到待显示页的第一条记录上  
sqlRst.absolute((intPage-1) * intPageSize +1);
i = 0;
while(i<intPageSize && !sqlRst.isAfterLast()){  
              sqlRst.next(); //

%>
<%=sqlRst.getString("id")%>"><%=sqlRst.getString("id")%>"> //****问题出现在这里,这什么显示两次或两次以上id就会出错?我想可以是游标的问题,也可能是别的问题,也大家帮忙,谢谢!****
<%  
i++;  
}  
}  
%>

解决方案 »

  1.   

    改为下面这样,可能更好些:
    <%
    if(intPageCount>0){  
    //将记录指针定位到待显示页的第一条记录上  
    sqlRst.absolute((intPage-1) * intPageSize +1);
    i = 0;
    while(i<intPageSize && !sqlRst.isAfterLast() && sqlRst.next()){  
                  //sqlRst.next(); //

    %>
    <%=sqlRst.getString("id")%>"><%=sqlRst.getString("id")%>"> //****问题出现在这里,这什么显示两次或两次以上id就会出错?我想可以是游标的问题,也可能是别的问题,也大家帮忙,谢谢!****
    <%  
    i++;  
    }  
    }  
    %>
      

  2.   

    ejbcreate() :你的第一个方法提示如下:
    javax.servlet.ServletException: [Microsoft][ODBC 驱动程序管理器] 无效的游标状态
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:457)
    at org.apache.jsp.gsxw_0005flist$jsp._jspService(gsxw_0005flist$jsp.java:265)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)第二个方法可以,但是再加一个字段或显示三或三个以上同一个字段时出错,错误提示如下:
    javax.servlet.ServletException: No data found
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:457)
    at org.apache.jsp.gsxw_0005flist$jsp._jspService(gsxw_0005flist$jsp.java:273)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.
      

  3.   

    ejbcreate() :你的第一个方法提示如下:
    javax.servlet.ServletException: [Microsoft][ODBC 驱动程序管理器] 无效的游标状态
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:457)
    at org.apache.jsp.gsxw_0005flist$jsp._jspService(gsxw_0005flist$jsp.java:265)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)第二个方法可以,但是再加一个字段或显示三或三个以上同一个字段时出错,错误提示如下:
    javax.servlet.ServletException: No data found
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:457)
    at org.apache.jsp.gsxw_0005flist$jsp._jspService(gsxw_0005flist$jsp.java:273)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.
      

  4.   

    <%=sqlRst.getString("id")%>"><%=sqlRst.getString("id")%>"> //****问题出现在这里,这什么显示两次或两次以上id就会出错?我想可以是游标的问题,也可能是别的问题,也大家帮忙,谢谢!****没有什么好看的!
    我估计你使用的 SQL SERVER 数据库!!我的也这样!别说连续两次,
    而且,< %=sqlRst.getString(3)%>"><%=sqlRst.getString(1)%>">
    就算是一次,先访问后面的字段,再访问前面的字段,都会这样!!改改程序吧!
    String aa =  sqlRst.getString("id");
    <%=aa%><%=aa%>
    这样子就不会有问题了!
      

  5.   

    这跟游标的特性有关吧。也可能跟楼上的说法差不多,我用的是SQL Server数据库,也有这种问题。不知道楼主用的是什么?
    这种游标只能按字段顺序访问各个子段,按照记录顺序一条一条访问各条记录,而不能违反这个规定,呵呵,很严格:)
    也就是
    <%
     aa=rs.getString("1");
     bb=rs.getString("2");
    %>
    是可以的,
    <%
     bb=rs.getString("2");
     aa=rs.getString("1");
    %>
    就是错误的。
    <%
     aa=rs.getString("1");
     aa=rs.getString("1");
    %>
    也是错误的。所以,楼主的问题解决方法就是将结果集的值赋到变量上,然后再操作变量就没有限制了。