简单的分页代码

原创 2004年11月02日 15:50:00

public interface   IPage
 {
  DataTable  FirstPage();
  DataTable  NextPage();
  DataTable  Page(int index);
 }
 /// <summary>
 /// OrderDetailEntity 的摘要说明。
 /// </summary>
 public class OrdersEntity:IPage
 {
  
  private  Hashtable  pageIndexHsh=new Hashtable();
   private  int        pageIndex=0;
  public   int  PageCount
  {
   get{return this.pageIndexHsh.Count ;}
  }
  public OrdersEntity()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
   string  cmdstr="select {0} from {1} order by {2} desc";
   cmdstr=string.Format(cmdstr,Orders.PrimaryKeyString ,Orders.TableName ,Orders.PrimaryKeyString );
   SqlCommand cmd=new SqlCommand(cmdstr);
   
   Hashtable allHsh=new Hashtable();
   int i=0;
    
   using (SqlConnection sqlcn=AppGlobalVar.sqlConn ())
   {
    cmd.Connection=sqlcn;
    sqlcn.Open ();
    SqlDataReader dr=cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection );
    
    while(dr.Read ())
    {
     allHsh.Add(i,dr[0]);
     i++;
    }
    dr.Close ();
   }
   System.Collections.IDictionaryEnumerator ide=allHsh.GetEnumerator ();
   int pageIndex=0;
   i=0;
   while(ide.MoveNext ())
   {
    if(i==0)
    {
     this.pageIndexHsh.Add(pageIndex,ide.Value );
     pageIndex++;
    }
    i++;
    if(i==AppGlobalVar.AppRowsPerPage)
    {
     i=0;
    }
   }
   allHsh.Clear ();
   allHsh=null;

   
  }

  private  DataTable  FillPage()
  {
   
   string idstr=this.pageIndexHsh[pageIndex].ToString();
   string  opc="select top {0} * from  {1} where {2}>={3}";
   opc=string.Format(opc,AppGlobalVar.AppRowsPerPage ,Orders.TableName ,Orders.PrimaryKeyString ,idstr);
   SqlDataAdapter da=new SqlDataAdapter(opc,AppGlobalVar.sqlConn()  );
      DataSet ds=new DataSet();
   da.Fill(ds,"PPC");
   return ds.Tables["PPC"];
  }
  public  DataTable  FirstPage()
  {
              this.pageIndex=0;
   return  this.FillPage();
  }
  public  DataTable NextPage()
  { 
   if(this.pageIndex==this.pageIndexHsh.Count-1  )
    this.pageIndex=0;
   this.pageIndex ++;
   return this.FillPage( );
   
  }
  public  int   CurrentPageIndex
  {
   get{return this.pageIndex;}
  }
  public  DataTable  Page(int index)
  {
   this.pageIndex=index;

   return   this.FillPage();
  }
 }
不过这个不太好:
1:要求主键一定可以执行比较大小的操作
2:没有Cache
如果能够加上以下的功能应该可以提高性能:

------对每一个已经填充过的页面数据进行缓冲;
------数据量大的时候不可能对所有的访问过的数据进行缓冲
------读取数据的SQL语句性能不是很好
要有一个记录访问频率的列表,
只缓存访问频繁的页面数据
不知道该如何调节两者的矛盾......
另外:如果有新记录添加的话,
在添加成功之后直接把新记录添加到缓冲区中,
可以这又会造成记录数不匹配;
总之矛盾呀。。。。。哪位仁兄有更好的法,请指明出来,谢谢先


 

一个简单的JSP分页代码

 Connection con=null;//加载 Oracle jdbc  thin 驱动程序Class.forName("oracle.jdbc.driver.OracleDriver");//O...
  • cdl2008sky
  • cdl2008sky
  • 2008年12月03日 18:21
  • 2087

简单的分页代码js实现

先看看效果图: 简单的分页js代码: 1、效果描述: 不用分页即可显示的jQuery插件 jQuery分页插件——jQuery.page.js用法很简单,效果很棒 2、调用方法:$(".tc...
  • SeekerTime
  • SeekerTime
  • 2017年07月10日 20:18
  • 710

从零开始实现一个简单的分页

前言 分页技术就是JSP页面用来显示数据。如果有100条数据,分页显示,每页显示10条,总共有10页;好处就是利于页面布局,且显示效率高。分页关键点1. 分页的SQL语句 //admin被分...
  • chengyunyi123
  • chengyunyi123
  • 2016年12月28日 09:32
  • 329

jsp实现的简单分页,适合新手用

--%> function getPageData(){ var a = document.getElementById('page'); if(a....
  • lmx1989219
  • lmx1989219
  • 2012年03月28日 16:56
  • 2062

简单的分页js代码

简单的分页js代码: 效果描述: 不用分页即可显示的jQuery插件 jQuery分页插件——jQuery.page.js用法很简单,效果很棒 调用方法: $(".tcdPageCode...
  • Senssic
  • Senssic
  • 2015年10月22日 17:52
  • 1697

如何写一个简单的分页

我们先看一下简单的需求。 当前页码前后显示 3 页,然后需要显示第一页和最后一页 未显示的页码用省略号表示。 举例:如果总共 110 页 ...
  • NPower_Zhang
  • NPower_Zhang
  • 2017年04月17日 19:19
  • 885

jsp+servlet实现的简单分页

1,首先前台jsp页面发出请求 人员查找topage是指当前页数,首先一开始查的是第一页,所以传递的是智能是1--> 2,然后就是servlet来处理jsp页面发过来的请求 pack...
  • asdfzjs
  • asdfzjs
  • 2013年11月21日 16:47
  • 1062

简单asp分页显示代码

on error resume next dim rs,sql,ifilePath = Server.MapPath("db.mdb")Set conn = Server.CreateObject("...
  • WINCOL
  • WINCOL
  • 2007年08月28日 00:03
  • 1791

最简单的ASP分页代码

原帖及讨论:http://bbs.bc-cn.net/dispbbs.asp?BoardID=10&ID=90981set conn=server.createobject("adodb.connec...
  • fanenmin
  • fanenmin
  • 2007年12月21日 14:39
  • 676

PHP简单漂亮的分页类

文介绍一款原生的PHP分页类,分页样式有点类似bootstrap。 index.php代码
  • haibo0668
  • haibo0668
  • 2016年09月06日 11:27
  • 6782
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:简单的分页代码
举报原因:
原因补充:

(最多只允许输入30个字)