我一直都搞不明白分页的概念更不知道怎么分页1,分页是GridView这个控件在分页吗?(比如我可以设置每页数据的最大行数)
2,分页是DataSet数据集在分页吗?(比如我分成很多table)
3,分页是拼SQL语句时就处理好了分页的SQL语句吗?问题应该比较弱质,但是我没办法了。

解决方案 »

  1.   

    分页是GridView这个控件在分页吗?(比如我可以设置每页数据的最大行数)
    1.GridView的确具备分布的能力,不过效率是很低的,上万条数据的时候就已经很慢了,因为它始终都会把所有数据都取过来,然后在绑定的时候按设定的行数分页,不推荐
    2.DataSet本身并不具备分布的功能,但我们可以按需取数据,比如先取20条,绑到第一页,点下一页的时候,将页码作为参数,构造新的SQL语句,查询后面的20条,并重新填充至DataSet中,然后重新绑至控件数据源,由于每次都只需要取20次数据,效率上会高很多
    3.分页是一种实际需求,拼SQL语句是一种解决方式,但是不太安全,最好是写成存储过程,在程序中传参调用,这样效率更高(存储过程在数据库中会预编译,每次调用会比单纯地拼SQL语句再传入要快)
      

  2.   

    我建议你还是使用存储过程。存储过程预编译,效率,而且安全,方便。分页的存储过程写起来也方便。比用微软的控件应该效率很多。GridView这种控件读取数据的时候是将所有数据读取回来到内存在进行处理,非常不效率。几千条数据就可以让你卡上几秒了,不要说成千上万数据了。
      

  3.   

    对了,如果你写成存储过程在其他语言里面也是很方便调用的。
    比如你还可以使用C++或者delphi调用。