• 通用分页存储过程


      从学校出来一开始就用SQL2005,现在的客户有的是SQL2000有时候很多的东西都用不成,没有办法,就像今天这儿事,存储过程出错,郁闷。关于分页存储过程的资料很多,我就不多说了,Google一下你就知道了。也发一个存储过程,方便大家。性能还算可以吧,支持多表查询,多字段排序,但是必须主键唯一,要是哪位兄弟有支持主键重复的,请告之。

    思路说明:

      按条件排序方式查询表获得总数,计算你想要的页码开始位置和结束位置,取得你要的信息返回。为了提高一点性能,增加了传入总数参数,存储过程中判断当页码Page_Index=1的时候,获得总数,不为1的时候直接的使用传入的总数参数。

    准备工作:

    1.下载PagerHelperSQL2000.cs、PagerQueryParam.cs、SMSPagination.sql、AspNetPager

     地址:AspNetPager SMSPagination.sql

     注意:PagerQueryParam是我写的一个分页查询类,包含了分页存储过程要用的信息,全部的分页查询都可以调用这个类;

    2.在使用的地方加入PagerHelperSQL2000.cs和PagerQueryParam.cs

    3.应用代码

    分页前台代码
    1 static PagerQueryParam Pager = new PagerQueryParam();
    2 Pager.TableName = @"dbo.CargoTrain A inner join dbo.CargoVideos C on A.TrainSystemCode=C.TrainSystemCode";
    3 Pager.PrimaryKey = @"C.VideoSystemCode";
    4 Pager.ShowFields = @" A.[StationName]”;
    5 Pager.OrderField = @"C.VideoSystemCode";
    6   Pager.OrderType = 1;
    7 Pager.StrWhere = string.Empty;
    8 Pager.PageIndex = 1;
    9 Pager.PageSize = 10;
    10 Pager.TotalCount = 0;
    11 Pager.ReTotalCount = 0;
    12  int TotalCount = Pager.TotalCount;
    13 string ErrMsg = string.Empty;
    14 PagerHelperSQL2000 datahel = new PagerHelperSQL2000();
    15
    16 Pager.StrWhere = GetStrWhere();
    17 DataTable dt = datahel.GetDataListBuPagerQueryParam(Pager, out TotalCount, out ErrMsg);
    18 if (TotalCount > 0)
    19 {
    20 Rep.DataSource = dt;
    21 Pager.TotalCount = TotalCount;
    22 AspNetPager.RecordCount = Pager.TotalCount;
    23 AspNetPager.PageSize = Pager.PageSize;
    24 Rep.DataBind();
    25 }
  • 相关阅读:
    写了一个好玩的小软件, 监视鼠标以及键盘的动作, 全局钩子. HowTired
    2005的五一计划
    给你的爱一直很安静
    沉重悼念蓝色理想经典论坛原Flash版主[手工感情][Handmade]
    一不小心就成就了一段姻缘,哈哈
    基于dotnet的代码统计工具新版发布
    四天三夜 刻骨铭心 颠峰战将 永不言败
    怎么回事?现在博客园极不稳定
    屋漏偏逢连夜雨, 船迟又遇打头风
    适用于IE浏览器及非IE浏览器的xmlhttp脚本
  • 原文地址:https://www.cnblogs.com/allanbolt/p/1629908.html
Copyright © 2020-2023  润新知