求高手解说C#分页的原理和实现方法?
谢谢!

解决方案 »

  1.   

    "求高手解说C#分页的原理和实现方法?"这个问题问的太笼统了吧,是webform还是winform?是dataset的分页吗?能不能说详细嗲.
      

  2.   

    可以参考一下NBear开源框架,那里面的数据访问层里有对数据分页的封装的源码.
      

  3.   

    "求高手解说C#分页的原理和实现方法?" 这个问题问的太笼统了吧,是webform还是winform?是dataset的分页吗?能不能说详细嗲.
    WEB下的查询数据分页!
      

  4.   

    web下的啊?
    我只做过winform下的分页
    有很多种方法,其实到现在我也不知道到底哪种方法才最合适,献丑和大家讨论下吧
    1、最笨的办法就是一次将表中的数据都读到DataSet里,然后使用程序控制来实现分页,这个很容易做,缺点是一次把数据全部读到DataSet会占用很多内存
    2、使用存储过程,这个我没试过,因为我还不会使用存储过程,据网上有人测试,此方法的缺点是数据量巨大的时候查询效率会很低
    3、使用sql语句每次读出一页的数据显示,这个需要拼出非常复杂的sql语句,并且在sql server 2005和oracle中此类sql的语法不同,在sql sercer 2005中是用top 10(假设每页10条),在oracle中是(rownum <= 10),具体的sql语句还要根据实际情况决定,这个方法节省了内存,但是对数据库的访问造成了巨大压力
    4、还有人说过使用XML来与数据库交互,这个我没做过,正在学习,我想思路可能是先读出数据库的所有记录写入XML文件,然后从XML中分页读取,这样降低了对数据库的访问,大量数据存储在文件中也会节省内存,这只是我自己的理解,这部分我还在找资料学习,希望楼下的能够给出更好的解释或者分页办法希望对你有所帮助
      

  5.   

    http://www.webdiyer.com/AspNetPager/utility/sqlspgen.aspx看下这个就知道了.
      

  6.   

     protected void gvlist_PageIndexChanging(object sender, GridViewPageEventArgs e)
            {
                //分页
                if (gvlist.EditIndex != -1)
                {
                    e.Cancel = true;
                    int newPageNumber = e.NewPageIndex + 1;
                }
                else
                {
                    gvlist.PageIndex = e.NewPageIndex;
                    //datav dtv=new datav();
                    gvlist.DataSource = _dv;
                    gvlist.DataBind();
                }
            }