广

ASP编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    分页那回事?

    2018-04-03 21:36:22 次阅读 稿源:互联网
    零七广告

      烈火网(LieHuo.Net)教程 混在web上,那有不同分页打交道的,分页偏偏又是一个硬伤,总是不能找到一个通用的解决方法,即使用上分页自定义/用户控件感觉还是少了点什么,性能.

      web页面一次一般显示10行数据为好,但往往很多时候我们从数据库中查出来上万条数据,这个时候我们要在上万条数据中显示10条,那就必须分页.分页的第一问题就是分页数据.

      1.分页数据:分页的数据分为两种,一种是在数据库中只取需要的10条数据,这也是性能提升的标致,一种是全盘拖出,放到程序缓存中再用程序来分页.

      1.1 第一种取数据方式有select top [PageSize] * from [Table] where id not in(select top [CurrentPage-1] [PageSize] id from [Table] ----用于access,mssql当中

      另一种是存储过程,这也是最快的取数据方式

    以下为引用的内容:
    ALTER PROCEDURE GetAuthors
    @PageIndex int,
    @PageSize int
    AS
    BEGIN
    -- Set the page bounds
    DECLARE @PageLowerBound int
    DECLARE @PageUpperBound int
    DECLARE @TotalRecords int
    SET @PageLowerBound = @PageSize * (@PageIndex-1)
    SET @PageUpperBound = @PageSize*@PageIndex-1

    -- Create a temp table TO store the select results
    CREATE TABLE #PageIndexForAuthors
    (
    IndexId int IDENTITY (0, 1) NOT NULL,
    au_id varchar(11),
    au_lname varchar(40),
    au_fname varchar(20),
    phone char(12),
    address varchar(40),
    city varchar(20),
    state char(2),
    zip char(5),
    contract bit
    )

    -- Insert into our temp table
    INSERT INTO #PageIndexForAuthors
    (au_id ,au_lname,au_fname,phone,address,city,state,zip,contract)
    SELECT *
    FROM authors
    ORDER BY au_id

    SELECT @TotalRecords = @@ROWCOUNT

    SELECT * FROM #PageIndexForAuthors
    WHERE IndexId between @PageLowerBound AND @PageUpperBound
    ORDER BY au_id
    RETURN @TotalRecords
    END

      GO上面这段存储过程是仿微软的写法,微软在Membership里面采用也是这存储过程分页.

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告