代码有些长,其实只看那句sql语句就行 谢谢啦
   
              int pageCount=0;
                int pageNow=1;
                int pageSize=2;
                int rowCount=0;
              String s_pageNow=request.getParameter("pageNow");
               if(s_pageNow!=null){ 
                pageNow=Integer.parseInt(s_pageNow);
                }
          
                  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
               
Connection conn = DriverManager.getConnection("jdbc:odbc:stuCor");
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
                String sql = "select count(*)  from cor";
                ResultSet rs = stmt.executeQuery(sql);
                
                
                if(rs.next()){
               rowCount =rs.getInt(1);
                  
                }
                
                if(rowCount%pageSize==0){
                   pageCount=rowCount/pageSize;
                }else{
                pageCount=(rowCount/pageSize)+1;
            }
              sql = "select top "+pageSize+" *  from cor where 学号  not in(select  top " +pageSize*(pageNow-1)+" 学号 from cor )";
                   System.out.print(sql);
                   rs = stmt.executeQuery(sql);
                         
               
     %>
     <h3>所有学生成绩记录如下:</h3>
               <table border=2 align="center">
                    <tr align="center"><td><b>学号</b></td><td><b>姓名</b></td><td><b>英语成绩</b></td><td><b>数学成绩</b></td><td><b>计算机基础</b></td></tr>
              <% while (rs.next()) { %>
                                  <tr align=center><td><b><%=rs.getString("学号") %></b></td><td><b><%=rs.getString("姓名") %></b></td><td><b><%=rs.getString("英语成绩") %></b></td><td><b><%=rs.getString("数学成绩") %></b></td><td><b><%=rs.getString("计算机基础") %></b></td></tr>
                 
                 </table>
                 
                 <%  }%>
                 <% 
                 
                 
                rs.close();
                stmt.close();
               conn.close();
               
          
            
           if(pageNow!=1){
           out.print("<a href=scan.jsp?pageNow="+(pageNow-1)+">上一页</a>");
           }
           for(int i=0; i<pageCount;i++){
          out.println("<a href=scan.jsp?pageNow="+i+">["+i+"]</a>");
            }
           if (pageNow!=4){
         out.print("<a href=scan.jsp?pageNow="+(pageNow+1)+">下一页</a>");
       } 
          
     %>
现在的问题是,总是说rs = stmt.executeQuery(sql);这一行错了。并且报错是说sql有语法错误,当pageNow为1的时候,sql语句为:select top 2 * from cor where 学号 not in(select top 0 学号 from cor) ;是不是 不能为0呀,也就是说 当pageNow为1时和不为1时的分开写呀 谢谢大侠指点啦

解决方案 »

  1.   

    是mysql吧你自己在mysql客户端执行下select top 0 学号 from cor 有没有错不就知道了。
      

  2.   

    我用的是access,我执行了下,有错 
      

  3.   

    mysql分页 使用 limit不是使用top..
      

  4.   

    <tr align=center><td><b><%=rs.getString("学号") %></b></td><td><b><%=rs.getString("姓名") %></b></td><td><b><%=rs.getString("英语成绩") %></b></td><td><b><%=rs.getString("数学成绩") %></b></td><td><b><%=rs.getString("计算机基础") %></b></td></tr>
     各位大侠,我这点代码有错吗 怎么说我 游标无效呢