zoukankan      html  css  js  c++  java
  • 通用分页存储过程

      从学校出来一开始就用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 }
  • 相关阅读:
    文件操作小练习
    阶段练习1
    copy小练习
    小练习
    str 小列题
    条款50:使用自定义的new以及delete的时机会
    条款49:了解new-handle行为
    简单的说一下:tarits技法就是一种模板元编程,起可以将本来处于运行期的事拉到编译期来做,增加了运行效率。 看以非模板元编程的例子,就是前面的那个例子:
    条款47:请使用traits class表示类型信息
    条款46:需要类型转换的时候请为模板定义非成员函数
  • 原文地址:https://www.cnblogs.com/allanbolt/p/1629908.html
Copyright © 2011-2022 走看看