我是新手,我搜索了一下论坛里的分页显示问题,我不太明白,故又发此一问,请各位高手帮忙!谢谢目前我所知到的分页显示流程如下:
1.从数据库读出要显示的数据
2.与控件DataGrid,DataList和Repeater邦定(datagrid据说比较费资源,所以请大家就不用介绍他的用法了)
我的要求就是能在网页上显示    第一页   当前第几页 上一页   下一页  共几页   最后一页
而且要求占系统资源最小,速度最快,因为我的数据量比较大,我想做的完美一些
问题:
1.在从数据库读得时候,能否只读取本页要显示的10行内容,在点下一页的时候在读取后10行,而不是一下把整个表读出来,那样费资源吧?(我想这样资源不会占用很多,不过速度不知道快不快)
2.用存储过程据说能解决数据量大的问题,不过我存储过程老看不懂,所以我比较郁闷
3.想问一下,目前解决此类问题最好的方法是什么?
4.那个前辈 就不能写一个数据库操作类(包括数据连接、操作、分页等等功能么?)
先问这些吧!谢谢了

解决方案 »

  1.   

    如果你是用VS2005,那么你可以连代码都不用写就实现了分页了,但这是建立在数据量不大的基础之上的,如果你希望能每页只读取数据库中的N条(比如10条)那么,用存储过程是比较好的方案(我所知道的这是最好的),你说“不过我存储过程老看不懂,所以我比较郁闷”,我觉得这不能成为你不要去研究的理由,做编程的,就应该要迎难而上,等你研究明白的时候,你的水平就大涨了,或许加薪的日子也就不远了。加油吧。
      

  2.   

    我以前也考虑过,当时的想法是通过增加了个数据库字段:
    prevID即上一个文章的ID号,然后将整个数据形成一个长链式结构,
    开始-> [ID:1 prevID:-1]<-[ID:2 prevID:1]<-[ID:3 prevID:2]<-[ID:2 prevID:1]...我设置时是时将首数据prevID设置为-1,然后再尾数据prevID设置为-2,并将此字段设置为索引字段。为正顺显示时:
    显示时是先搜[ID:1 prevID:-1]即搜 prevID=-1的数据,这为首数据;
    然后再取得此ID=1,再按prevID=1搜到[ID:2 prevID:1]做一个循环……
    直到搜到文件尾,或指定数量的记录为止。当为逆顺显示时情况差不多。
    不过这种方式比较麻烦,如果表的数据量达不到几百万以上时一般是不会用的……
      

  3.   

    刚开始我也是对存储过程很头疼,但该面对的总要面对的
    后来懂了 说穿了 也就是数据控制 数据查询 数据操作等加些数据库专有函数或包
    再加些基本都共通的逻辑if else for 就差不多了 加油
      

  4.   

    自定义分页加一个专用于分页的字段,用简单的SQL语句,就可以去除分页数据
      

  5.   

    那我也就再废话几句,存储过程的设计思路是,需要加四个参数,页面大小、记录数、当前页、总页数。其中记录数和总页数作为InputOutput型,其余两个参数初始置0,然后根据实际情况变化,结果每次查询就查一页记录,速度很快。但是要用到master数据库中关于指针的存储过程。可以上网找一下关于“百万级数据分页存储过程”.祝早点实现^_^
      

  6.   

    谢谢各位大哥的支持!~
    我现在暂时用PagedDataSource+datalist作分页吧 ,存储过程在研究一下
    再次感谢大家支持!下午5点封帖