`
catlovefox
  • 浏览: 26153 次
  • 性别: Icon_minigender_2
  • 来自: 济南
社区版块
存档分类
最新评论

SQLSERVER2000分页代码

SQL 
阅读更多
网上找的。资料
1.今天上午写了个sqlserver2000的分页方法。此外网上也有很多的分页方法。大致有用top的,还有就是用存储过程。呵呵,存储过程那个好是好用,但是太复杂,么的看明白。
    我自己写了个方法,自己用吧。感觉还可以了!
方法:selectOnePage_queryToHashTabl(String sql,int pageNo, int numPerPage)
参数说明:  String sql  ---要查询的sql
          int pageNo  ----要查询的页码
          int numPerPage  -----每页显示多少条记录
返回值:Vector.  本方法返回一个Vector,其中Vector中的每一个元素是一个Hashtable.每个Hashtable中存放着一行(条)记录。Vector的第一个元素放着分页信息(一共多少页,一共多少条记录)。顾只要从Vector的第二个元素开始循环即可获取所有的记录。


用java 写的
public Vector selectOnePage_queryToHashTabl(String sql,int pageNo, int numPerPage)throws Exception   {
      Vector list = new Vector();
       Connection con = null;
       Statement stmt = null;
       ResultSet rs = null;
       try
       {
           con = getConnection();
           stmt = con.createStatement();
           rs = stmt.executeQuery(sql);  //首先获取所有满足条件的记录条数
           ResultSetMetaData columns=rs.getMetaData();
           int columnCount=rs.getMetaData().getColumnCount();
           int rowNo = 1;
           int totalPages = 0;
           int totalRecords=0;
           while(rs.next())
             {
                 if(rowNo>(pageNo-1)*numPerPage && rowNo<=pageNo*numPerPage)
                 {
                  Hashtable table= new Hashtable();
                     try
                     {
                         for(int i=1;i<=columnCount;i++)
                         {
                          String columnValue = rs.getString(i);
                             String columnname=columns.getColumnName(i);
                             table.put(columnname,columnValue);   
                         }
                         list.add(table);
                     }
                     catch(Exception ex)
                     {
                         throw ex;
                     }
                 }
                 rowNo++;
                 totalRecords++;
             }
             if(totalRecords % numPerPage == 0)
             {
                 totalPages = totalRecords / numPerPage;
             }
             else
             {
                 totalPages = totalRecords / numPerPage + 1;
             }
            
             Hashtable table= new Hashtable();             
            
             table.put("totalPages",Integer.toString(totalPages));//共有几页
                         
             table.put("totalRecords",Integer.toString(totalRecords));//共有几条记录            
            
             list.insertElementAt(table,0);//第一条记录放置分页信息
           
       }
       catch(Exception ex)
       {
           throw ex;
       }
       finally
       {
           try
           {
               rs.close();
               stmt.close();
               con.close();
           }
           catch(Exception ex)
           {
               throw ex;
           }
       }
       if(list.size() == 0)
       {
           return null;
       }
       else
       {
           return list;
       }
   }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics