博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态分页实现
阅读量:6580 次
发布时间:2019-06-24

本文共 2799 字,大约阅读时间需要 9 分钟。

 

ContractedBlock.gif
ExpandedBlockStart.gif
Code
//分页存储过程
CREATE    procedure Pager
@sqlstr nvarchar(
4000), --查询字符串
@currentpage 
int--第N页
@pagesize 
int --每页行数
as
set nocount on
declare @P1 
int--P1是游标的id
 @rowcount 
int,
 @pagecount 
int
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt
=1,@ccopt=1,@rowcount=@rowcount output
 select ceiling(
1.0*@rowcount/@pagesize) as pagecount,@rowcount as recordcount--,@currentpage as 当前页 
set @pagecount = ceiling(1.0*@rowcount/@pagesize)
IF @currentpage
>=@pagecount
   
set @currentpage=@pagecount
set @currentpage=(@currentpage-1)*@pagesize+1
exec sp_cursorfetch @P1,
16,@currentpage,@pagesize 
exec sp_cursorclose @P1
set nocount off
GO
//实现代码:
//执行分页程序
        public DataTable ExecPager(string sql, int  curPage, int pageSize, out int pageCount , out int recordCount)
        {
            
//Set up a return value
            DataTable dt = new DataTable();
            DataSet ds 
= null;
           
//Create a parameter
            SqlParameter[] parms ={
                XNCJWC.Utility.Common.MakeInParm(
"@sqlstr",SqlDbType.VarChar,4000, sql),
                XNCJWC.Utility.Common.MakeInParm(
"@currentpage",SqlDbType.Int, 4, curPage),
                XNCJWC.Utility.Common.MakeInParm(
"@pagesize",SqlDbType.Int, 4, pageSize)
            };
            
try
            {
                
//Execute the query 
                ds = SqlHelper.ExecuteReaderDataSet(SqlHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure, "Pager", parms);
                dt 
= ds.Tables[1];
                pageCount 
= Int32.Parse(((DataRow)dt.Rows[0])[0].ToString());
                recordCount 
= Int32.Parse(((DataRow)dt.Rows[0])[1].ToString());
            }
            
catch (Exception e)
            {
                XNCJWC.Utility.Log.Error(e.Message.ToString());
                
throw e;// new Exception("Query Failed");
            }
            
return ds.Tables[2];
        }
   
------------------------------------------------------------------------------------------------------------
pager类:
public class Pager
    {
       
private int _curPage ; //当前页数
       private int _recordCount ;//总记录数
       private int _pageSize  = 20; //每页记录数
       private int _pageCount;  //页数
       private string _strSql;  //sql语句
       private DataTable _dt;    //当前页记录集
          public Pager()
        {
         _curPage 
= 1 ;
         _recordCount 
= 0 ;        
         _pageCount 
= 0;
         _strSql 
= "";
        }
        
public Pager(string  sql, int curpage)
        {
            _recordCount 
= 0;
            _pageCount 
= 0;
            _strSql 
= sql;
            _curPage 
= curpage;
        }
       
/// <summary>
       
/// 分页
       
/// </summary>
        public void StartPage()
        {
            _dt 
= ExecPager(this._strSql, this._curPage, this._pageSize, out _pageCount, out _recordCount);              
        }
        
public int CurPage
        {
            
get { return this._curPage; }
            
set { this._curPage = value; }
        }
        
public int RecordCount
        {
            
get { return this._recordCount; }
            
set { this._recordCount = value; }
        }
        
public int PageSize
        {
            
get { return this._pageSize; }
            
set { this._pageSize = value; }
        }
        
public int PageCount
        {
            
get { return this._pageCount; }
            
set { this._pageCount = value; }
        }
        
public string StrSql
        {
            
get { return this._strSql; }
            
set { this._strSql = value; }
        }
        
public DataTable Dt
        {
            
get { return this._dt; }
            
set { this._dt = value; }
        }
       
    }

转载于:https://www.cnblogs.com/hubcarl/archive/2009/05/10/1453502.html

你可能感兴趣的文章
转:模态对话框的支持 (IE,Firefox,Chrome)
查看>>
3518EV200 SDK学习1
查看>>
1163: 零起点学算法70——Yes,I can!
查看>>
关于图片或者文件在数据库的存储方式归纳
查看>>
ADO.NET笔记——使用DataSet返回数据
查看>>
Python脚本日志系统
查看>>
RowSet的使用
查看>>
每日一记--cookie
查看>>
IOS 7 Study - UISegmentedControl
查看>>
八、通用类型系统
查看>>
JQuery的ajaxFileUpload的使用
查看>>
关于Integer类中parseInt()和valueOf()方法的区别以及int和String类性的转换.以及String类valueOf()方法...
查看>>
ios 控制器的生命周期
查看>>
JavaScript 特殊效果代码
查看>>
【?】codeforces721E Road to Home(DP+单调队列)
查看>>
MySQL 仅保留7天、一个月数据
查看>>
Diff Two Arrays
查看>>
下拉菜单
查看>>
[清华集训2014]玛里苟斯
查看>>
【MVC+EasyUI实例】对数据网格的增删改查(上)
查看>>