aspnetpager分页配通用存储过程

存储过程  http://www.cnblogs.com/hejunrex/archive/2011/10/26/2224895.html

 ==DAL==

        ///   <summary>
        
///  获取分页数据
        
///   </summary>
        
///   <param name="tblName"> 表名、视图、表连接 如:'xtest' </param>
        
///   <param name="strGetFields"> 需要返回的列如:'xname,xdemo' </param>
        
///   <param name="strWhere"> 查询条件(注意:不要加where) </param>
        
///   <param name="strOrder"> 排序的字段名如:'order by id desc' </param>
        
///   <param name="pageIndex"> 开始记录位置 </param>
        
///   <param name="pageSize"> 每页记录数 </param>
        
///   <param name="doCount"> 记录总数 </param>
        
///   <param name="recordCount"> 非0则统计,为0则不统计 </param>
        
///   <returns></returns>
         public DataTable GetPageData( string tblName, string strGetFields, string strWhere, string strOrder, int pageIndex, int pageSize, int doCount, out  int recordCount)
        {
            SqlParameter[] prams ={
                                  new SqlParameter( " @tblName ",SqlDbType.VarChar),
                                  new SqlParameter( " @strGetFields ",SqlDbType.VarChar),
                                  new SqlParameter( " @strWhere ",SqlDbType.VarChar),
                                  new SqlParameter( " @strOrder ",SqlDbType.VarChar),
                                  new SqlParameter( " @pageIndex ",SqlDbType.Int),
                                  new SqlParameter( " @pageSize ",SqlDbType.Int),
                                  new SqlParameter( " @doCount ",SqlDbType.Int),
                                  new SqlParameter( " @recordCount ",SqlDbType.Int)
                                 };
            prams[ 0].Value = tblName;
            prams[ 1].Value = strGetFields;
            prams[ 2].Value = strWhere;
            prams[ 3].Value = strOrder;
            prams[ 4].Value = pageIndex;
            prams[ 5].Value = pageSize;
            prams[ 6].Value = doCount;
            prams[ 7].Direction = ParameterDirection.Output;
            DataTable dt = DbHelperSQL.RunProcedure( " xp_GetDataPaged_2005 ", prams,  " PageData ").Tables[ 0];
            recordCount = ( int)prams[ 7].Value;
             return dt;
        }

 

 ==BLL==

  ///   <summary>
        
///  获取分页数据
        
///   </summary>
        
///   <param name="tblName"> 表名、视图、表连接 如:'xtest' </param>
        
///   <param name="strGetFields"> 需要返回的列如:'xname,xdemo' </param>
        
///   <param name="strWhere"> 查询条件(注意:不要加where) </param>
        
///   <param name="strOrder"> 排序的字段名如:'order by id desc' </param>
        
///   <param name="pageIndex"> 开始索引位置 </param>
        
///   <param name="pageSize"> 每页记录数 </param>
        
///   <param name="doCount"> 记录总数 </param>
        
///   <param name="recordCount"> 非0则统计,为0则不统计 </param>
        
///   <returns></returns>
         public DataTable GetPageData( string tblName,  string strGetFields,  string strWhere,  string strOrder,  int pageIndex,  int pageSize,  int doCount,  out  int recordCount)
        {
            SteelMachining.DAL.AspNetPager AspNetPagerDAL =  new SteelMachining.DAL.AspNetPager();
            DataTable dt= AspNetPagerDAL.GetPageData(tblName, strGetFields, strWhere, strOrder, pageIndex, pageSize, doCount,  out recordCount);
             return dt;
        }

 ==Web==

  private  void Bind()
        {
             int recordCount =  0;
            DataTable dt = ( new SteelMachining.BLL.AspNetPager()).GetPageData( " companyInfo "" id """" order by id desc ", AspNetPager1.CurrentPageIndex, AspNetPager1.PageSize,  1out recordCount);
            AspNetPager1.RecordCount = recordCount;
            Repeater1.DataSource = dt;
            Repeater1.DataBind();
        }
         protected  void AspNetPager1_PageChanged( object sender, EventArgs e)
        {
            Bind();
        }

 

简单记录下...

其中分页每次算总数可以使用单独方法只计算一次.....

转载于:https://www.cnblogs.com/hejunrex/archive/2011/10/27/2226671.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值