CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

在线讨论。请问如何在查询的结果中分页?

楼主crazy(Out of MEmory)2002-11-14 09:04:06 在 Java / Web 开发 提问

有没有更好的方法?  
  下面是我写的,可是在翻页时总是出现  
    Before   start   of   result   set  
  错误,  
  附件有connMysql.ConnMysql  
  主要是执行executeQuery()的,  
  error.jsp显示错误的,  
  如果嫌烦,可以不看我的代码,能不能提供更好的方法  
   
  请问是什么原因?  
  <!--   search.jsp   -->  
  <?xml   version="1.0"   encoding="gb2312"?>  
  <!DOCTYPE   html   PUBLIC   "-//W3C//DTD   XHTML   1.0   Transitional//EN"   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  <%@   page   contentType="text/html;   charset=gb2312"   language="java"   import="java.sql.*"   errorPage="../error.jsp?from=adminpages.jsp"   %>  
  <jsp:useBean   id="connMysql"   scope="page"   class="connMysql.ConnMysql"/>  
  <html   xmlns="http://www.w3.org/1999/xhtml">  
  <head>  
  <title>政策法规查询</title>  
  <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312"   />  
  </head>  
   
  <body>  
   
  <form   name="form1"   id="form1"   method="post"   action="search.jsp">  
      <table   width="100%"   border="0">  
          <tr>    
              <td>名称  
                  <input   name="sName"   type="text"   id="sName"   size="20"   />  
                  颁发单位    
                  <select   name="sUnit"   id="sUnit">  
  <option   value=""   >不限</option>  
  <%  
  ResultSet   rsUnit=connMysql.executeQuery("select   unit   from   zcfg");  
  while(rsUnit.next()){  
  String   unit=rsUnit.getString("unit");  
  %>  
  <option   value="<%=   unit   %>"   ><%=   unit   %></option>  
  <%  
  }  
  %>  
                  </select>  
                  文号    
                  <input   name="sFileNo"   type="text"   id="sFileNo"   size="15"   />  
                  颁布日期    
                  <input   name="sDate"   type="text"   id="sDate"   size="4"   />  
                  年    
                  <select   name="order"   id="order">  
                      <option   value="date1"   selected="selected">按日期排序</option>  
                      <option   value="name">按名称排序</option>  
                  </select>    
                  <input   type="submit"   name="Submit"   value="查询"   />   </td>  
          </tr>  
      </table>  
  </form><%!    
  int   allPage,start=0,max=5;  
  int   all,currentPage,nextStart,upStart,lastStart;  
  String   sql,clause,sName,sUnit,sFileNo,sDate,order;  
    %>  
   
  <%    
   
   
  if(request.getParameter("Submit")!=null){  
  //out.println(request.getParameter("Submit"));  
  if(request.getParameter("start")!=null){  
   
  start=Integer.parseInt(request.getParameter("start"));  
   
  sName=new   String(request.getParameter("Name").getBytes("ISO8859_1"),"GB2312");  
  sUnit=new   String(request.getParameter("Unit").getBytes("ISO8859_1"),"GB2312");  
  sFileNo=new   String(request.getParameter("FileNo").getBytes("ISO8859_1"),"GB2312");  
  sDate=new   String(request.getParameter("Date").getBytes("ISO8859_1"),"GB2312");  
  order=new   String(request.getParameter("rder").getBytes("ISO8859_1"),"GB2312");  
   
  }else{  
    sName=new   String(request.getParameter("sName").getBytes("ISO8859_1"),"GB2312");  
  sUnit=new   String(request.getParameter("sUnit").getBytes("ISO8859_1"),"GB2312");  
  sFileNo=new   String(request.getParameter("sFileNo").getBytes("ISO8859_1"),"GB2312");  
  sDate=new   String(request.getParameter("sDate").getBytes("ISO8859_1"),"GB2312");  
  order=new   String(request.getParameter("order").getBytes("ISO8859_1"),"GB2312");  
  }  
  sql="select   name,unit,fileno,date1   from   zcfg   where   1   and   name   like   '"+"%"+sName+"%"+"'   and   unit   like   '%"+sUnit+"%'   and   fileno   like   '"+"%"+sFileNo+"%"+"'   and   date1   like   '"+"%"+sDate+"%"+"'   order   by   "+order+"   desc   limit   "+start+","+max+"";  
  clause=sql.substring(39);  
   
  ResultSet   rsCount=connMysql.executeQuery("select   count(*)   from   zcfg   "+clause);  
  rsCount.last();  
  all=rsCount.getInt(1);  
  rsCount.first();  
  allPage=(int)(all/max)+1;  
  currentPage=(int)(start/max)+1;  
  nextStart=max*currentPage;  
  upStart=max*(currentPage-2);  
  lastStart=max*(allPage-1);  
  if(rsCount!=null)   rsCount.close();  
  if(nextStart>all)   nextStart=lastStart;  
  if(upStart<0)   upStart=0;  
  %>  
  <table   width="100%"   border="1"   class="table1"><tr><td>sdf</td></tr>  
  <%  
  ResultSet   rsS=connMysql.executeQuery(sql);  
   
  while(rsS.next()){  
  String rName=rsS.getString("name"),  
  rUnit=rsS.getString("unit"),  
  rFileNo=rsS.getString("fileno"),  
  rDate1=rsS.getString("date1");  
  %>  
  <tr>    
          <td>名称:<%=   rName   %></td>  
      </tr>  
      <tr>  
          <td>颁布日期:<%=   rDate1   %>   颁发单位简称:<%=   rUnit   %>文号:<%=   rFileNo   %>   </td>  
      </tr>  
  <%  
  }  
  %>  
  </table>  
  <table   border=1><tr><td>共<%=all   %>条&nbsp;<%=   allPage   %>页&nbsp;第<%=currentPage   %>页&nbsp;<a   href="<%=   request.getRequestURI()   %>?start=0&Name=<%=   sName   %>&Unit=<%=   sUnit   %>&FileNo=<%=   sFileNo   %>&Date=<%=   sDate   %>&rder=<%=   order   %>&Submit=Submit">首页</a>&nbsp;<a   href="search.jsp?start=<%=   upStart   %>&Name=<%=   sName   %>&Unit=<%=   sUnit   %>&FileNo=<%=   sFileNo   %>&Date=<%=   sDate   %>&rder=<%=   order   %>&Submit=Submit">上一页</a>&nbsp;<a   href="search.jsp?start=<%=   nextStart   %>&Name=<%=   sName   %>&Unit=<%=   sUnit   %>&FileNo=<%=   sFileNo   %>&Date=<%=   sDate   %>&rder=<%=   order   %>&Submit=Submit">下一页</a>&nbsp;<a   href="search.jsp?start=<%=   lastStart   %>&Name=<%=   sName   %>&Unit=<%=   sUnit   %>&FileNo=<%=   sFileNo   %>&Date=<%=   sDate   %>&rder=<%=   order   %>&Submit=Submit">尾页</a></td></tr></table>  
  <%  
  }  
   
  %>  
       
   
  </body>  
  </html>  
  问题点数:100、回复次数:3Top

1 楼hotenM(南京)回复于 2002-11-14 09:09:22 得分 20

 
    Before   start   of   result   set  
  没有rs.next()  
  就进行rs操作  
   
  ps:你的程序我没有看Top

2 楼crazy(Out of MEmory)回复于 2002-11-14 09:15:24 得分 0

这个错误我已经查过,  
  可是我明明已经rs.next()   了呀,实在没办法时我还rs.first()了呢,  
   
  呵呵,谢了,我再看看,  
  欢迎大家UPTop

3 楼xiaobi_liang(淡泊以明志,宁静以致远...)回复于 2002-11-14 09:23:48 得分 80

没有你的表,运行不了你的程序  
   
  在你第一次查询出行数并用  
  在rsCount.last()前加上if(rsCount.next())判断来看看?  
   
  不过程序比较难看,可以考虑写在BEAN中。  
   
  这几天正在研究,成形后会帖上来的  
  Top

相关问题

  • 大家一起来讨论一下有关数据库的分页浏览查询结果的最佳方法!
  • 查询结果的分页显示,help????
  • 查询结果的分页显示?
  • 在SYBASE的SQL查询中,怎样给查询结果分页?
  • 如何将查询结果分页显示?
  • 查询结果分页为何不成功?
  • 关于数据库查询结果分页显示的问题
  • ISAPI查询数据库的结果如何分页显示?
  • asp查询结果分页的问题,原理是什么?
  • 查询结果的分页显示望大家指点。

关键词

得分解答快速导航

  • 帖主:crazy
  • hotenM
  • xiaobi_liang

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo