不知是否能够通用。效率如何?百万的数据,不知分页效果怎样,有经验的XDJM帮看看!

解决方案 »

  1.   

    aspnetpager跟数据库无关
    它只是起一个表现层的作用
    只负责显示
      

  2.   

    就是说,分页的数据都是由数据库或者程序返回的
    本身又不能承载数据,比如它负责接受 PageSize ,PageIndex,RowCount
    根据这三个数据显示分页结果
    至于这三个数据来源,都是数据库或者程序传入的
      

  3.   

    哦,我看他的例子都是针对SQL SERVER的。ORACLE的得重新写个存储过程了。
      

  4.   

    CREATE procedure wqnews_GetPagedWQNews
    (@pagesize int,
    @pageindex int,
    @docount bit)
    as
    set nocount on
    if(@docount=1)
    select count(newsid) from wqnews
    else
    begin
    declare @indextable table(id int identity(1,1),nid int)
    declare @PageLowerBound int
    declare @PageUpperBound int
    set @PageLowerBound=(@pageindex-1)*@pagesize
    set @PageUpperBound=@PageLowerBound+@pagesize
    set rowcount @PageUpperBound
    insert into @indextable(nid) select newsid from wqnews order by addtime desc
    select O.newsid,O.source,O.heading,O.addtime from wqnews O,@indextable t where O.newsid=t.nid
    and t.id>@PageLowerBound and t.id<=@PageUpperBound order by t.id
    end
    set nocount offGO
    Sql Server 的存储过程看不太懂,不知道该如何转成Oracle的写法。
      

  5.   

    可以的,aspnetpager跟数据库的种类没有关系。
      

  6.   

    void BindData()
    {   
    OracleConnection conn=new OracleConnection(pub.strCnn);
    OracleCommand cmd=new OracleCommand(sql,conn);
    OracleDataAdapter adapter=new OracleDataAdapter(cmd);
    DataSet ds=new DataSet();
    adapter.Fill(ds,pager.PageSize*(pager.CurrentPageIndex-1),pager.PageSize,"mfData");
    DataView myView = ds.Tables["mfData"].DefaultView;
    //取得记录总数
    OracleCommand myCommand=conn.CreateCommand();
    myCommand.CommandType = CommandType.Text;
    myCommand.CommandText="select count(*) from super_log where active_flag='Y'";
    conn.Open();
    pager.RecordCount=Convert.ToInt32(myCommand.ExecuteOracleScalar().ToString());
    //绑定数据
    mfdg.DataSource=ds.Tables["mfData"];
    mfdg.DataBind();
    //关闭连接
    conn.Close();
    //动态设置用户自定义文本内容
    pager.CustomInfoText="记录总数:<font color=\"blue\"><b>"+pager.RecordCount.ToString()+"</b></font>";
    pager.CustomInfoText+=" 总页数:<font color=\"blue\"><b>"+pager.PageCount.ToString()+"</b></font>";
    pager.CustomInfoText+=" 当前页:<font color=\"red\"><b>"+pager.CurrentPageIndex.ToString()+"</b></font>";
    }我的这个方法,数据量大的时候,速度狂慢!
      

  7.   

    aspnetpager跟数据库无关
    如果觉得真的不方便,可以自己写自定义分页。
    给个例子你参考一下,不过也是SQL的存储过程,Oracle中应该也可以运行
    http://blog.csdn.net/sunnystar365/archive/2005/09/28/491139.aspx