分页

    //基础SQL,过滤排序串
    string sBaseSql=GetBaseSql();
    string sFilter=MakeFilter();
    string sSort="FDwNo,FYear,FMonth";

    //计算行数、页数、当前页
    string sSql="select count(*) from ("+sBaseSql+") t1"+" where "+sFilter;
    int iRowCount=CFunc.DbGetRowCountBySelectCount(sDsn,sSql);
    int iPageSize=CFunc.ToInt(Session["PageSize"]);
    int iPageCount=CFunc.CalcuPageCount(iRowCount,iPageSize);
    int iCurPage=1;
    if(FCurPage.Items.Count>0)
     iCurPage=CFunc.ToInt(FCurPage.SelectedItem.Text);

    this.FPages.Text=CFunc.ToString(iPageCount);
    this.FRecords.Text=CFunc.ToString(iRowCount);
    FCurPage.Items.Clear();
    for(int i=0;i<iPageCount;i++)
    {
     this.FCurPage.Items.Add(CFunc.ToString(i+1));
    }
    CFunc.CboSelItemByText(FCurPage,CFunc.ToString(iCurPage));


    //返回结果集
    sSql=@"
       SELECT TOP 页大小 * FROM (表) t1
       WHERE (过滤) and (FID NOT IN
        (
        SELECT TOP 页大小*(页号-1) FID FROM (表) t1
        WHERE 过滤
        ORDER BY 排序)
       )
       ORDER BY 排序
      ";
    sSql=sSql.Replace("页大小*(页号-1)",CFunc.ToString(iPageSize*(iCurPage-1)));
    sSql=sSql.Replace("页大小",CFunc.ToString(Session["PageSize"]));
    sSql=sSql.Replace("表",sBaseSql);
    sSql=sSql.Replace("过滤",sFilter);
    sSql=sSql.Replace("排序",sSort);
    DataSet ds=CFunc.DbExeQry(sDsn,sSql);
    return ds;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值