SqlPager最终版[附源码和示例程序](使用存储过程进行分页)

nbsp;     前面已经写了很多篇关于SqlPager的文章了,对于Sqlpager本身我就不再多说了!这次我算是我对SqlPager的最后改进了吧!
      主要的改进是在上一次修改了其样式表指定和数字分页的基础上进行的,主要修改的地方是分页的方式,原来一直是使用的select top 的分页,现在我改为了使用SQL存储过程分页了!主要是在使用原来那种分页方式的时候遇到了很多问题,最突出的一个问题就是无法使用飞关键字段排序,所以这次我对其进行了这个修改,相信通过这次的修改已经基本能够满足一般的需求了!
      在此我就不用贴出可具体的代码了,代码的会作为附件供需要使用的人下载!在此我只说明一些要注意的地方。在此我在此写出调用的方法,因为和以前比有点变动。
用于数据绑定的方法:(  新加了注释)
ExpandedBlockStart.gif ContractedBlock.gif /**/ /// <summary>
InBlock.gif        
/// 绑定数据
InBlock.gif        
/// </summary>
ExpandedBlockEnd.gif        
/// <param name="SQL">SQL语句</param>

None.gif          private   void  BindGrid( string  SQL)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
//需要注意的一些问题
ExpandedSubBlockStart.gifContractedSubBlock.gif
            /**//*
InBlock.gif             * 1.排序只能有一个字段的排序 这里还可以优化,望大家改进
InBlock.gif             * 2.这个参数 string SQL 如果其查询中有形如 like '%jj%'之类的含有单引号的,请把单引号换成 如 like ''%jj%'' 
InBlock.gif             * 3.最后那个where条件必须加上,至于加什么自己根据需要写,如果没有条件的也必须写个条件,如主键>0之类的
ExpandedSubBlockEnd.gif             * 
*/

InBlock.gif            
this.BindSqlPager(SqlPager1,LJHSqlPager2.SortMode.ASC ,"OrderID","OrderID",this.ConnectString,"DataGrid1",SQL,"("+SQL+")","*","OrderID>0");
ExpandedBlockEnd.gif        }
        
None.gif        
ExpandedBlockStart.gifContractedBlock.gif        
/**/ /// <summary>
InBlock.gif        
/// 绑定SqlPager数据 存储过程的分页
InBlock.gif        
/// </summary>
InBlock.gif        
/// <param name="sqlPager">SqlPager控件ID</param>
InBlock.gif        
/// <param name="sort">排序方式</param>
InBlock.gif        
/// <param name="sortfied">排序字段</param>
InBlock.gif        
/// <param name="FieldKey">关键字段(主键)</param>
InBlock.gif        
/// <param name="ConnectString">数据库链接字符串</param>
InBlock.gif        
/// <param name="ControlName">绑定的网格控件</param>
InBlock.gif        
/// <param name="CommandText">SQL语句</param>
InBlock.gif        
/// <param name="TableName">数据表表名(可以是复杂的查询)</param>
InBlock.gif        
/// <param name="Fields">查询字段</param>
ExpandedBlockEnd.gif        
/// <param name="SqlCondition">Where条件</param>

None.gif          public   void  BindSqlPager(LJHSqlPager2.SqlPager sqlPager,LJHSqlPager2.SortMode sort,
None.gif            
string  sortfied, string  FieldKey,     string  ConnectString, string  ControlName,     string  CommandText,
None.gif            
string  TableName, string  Fields, string  SqlCondition)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            sqlPager.ConnectionString
=ConnectString;
InBlock.gif            sqlPager.ControlToPaginate
=ControlName;
InBlock.gif            sqlPager.SelectCommand
=CommandText;
InBlock.gif            sqlPager.SortMode
=sort;
InBlock.gif            sqlPager.FieldKey
=FieldKey;
InBlock.gif            sqlPager.SortField
=sortfied;
InBlock.gif            sqlPager.TableName
=TableName;
InBlock.gif            sqlPager.Fields
=Fields;
InBlock.gif            sqlPager.SQLCondition
=SqlCondition;
InBlock.gif            sqlPager.DataBind();
InBlock.gif
ExpandedBlockEnd.gif        }


对此方法说明一点:(在调用方法的时候)
None.gif this .BindSqlPager2( this .SqlPager1,LJHSqlPager2.SortMode.DESC, this .GetOrderField(), " ListID " , this .GetDbConnecString(), " dgComments " ,SQL, " ( " + SQL + " ) " , " * " , " ListID>0 " );
这里的SQL也就是 上面方法中的TableName参数,因为有时候我们的SQL比较复杂,所以表可能是一个比较复杂的SQL语句;如果只是一张表的查询,那么那里就知用写表名就可以了!

其他的我就不多说了,如果大家还有不清楚地可以留言或者联系我!本人晚上在上网,白天公司禁止上网!

源码下载地址(附存储过程): SqlPager.RAR
实在抱歉,里面的那个分页存储过程不是我在控件中使用的那个,在此向下载了的弟兄们表示歉意。
正确的存储过程:分页存储过程下载

应大家的要求,特写了个小Demo,数据库为SqlServer自带的Northwind
下载地址:Demo下载
Demo运行效果图:DEMO.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值