zoukankan      html  css  js  c++  java
  • asp.net利用存储过程分页代码

    -最通用的分页存储过程 
    -- 获取指定页的数据   
    CREATE PROCEDURE Pagination   
    @tblName   varchar(255),       -- 表名   
    @strGetFields varchar(1000) = '*', -- 需要返回的列  
    @fldName varchar(255)='',      -- 排序的字段名  
    @PageSize   int = 10,          -- 页尺寸   
    @PageIndex int = 1,           -- 页码   
    @doCount bit = 0,   -- 返回记录总数, 非 0 值则返回   
    @OrderType bit = 0, -- 设置排序类型, 非 0 值则降序   
    @strWhere varchar(1500) = '' -- 查询条件 (注意: 不要加 where)   
    AS   
    declare @strSQL   varchar(5000)       -- 主语句   
    declare @strTmp   varchar(110)        -- 临时变量   
    declare @strOrder varchar(400)        -- 排序类型     
    if @doCount != 0   
    begin   
       if @strWhere !=''   
       set @strSQL = 'select count(*) as Total from ['+ @tblName +'] where '+ @strWhere   
       else   
       set @strSQL = 'select count(*) as Total from ['+ @tblName +']'  
    end   
    --以上代码的意思是如果@doCount传递过来的不是0,就执行总数统计。以下的所有代码都 
    --是@doCount为0的情况   
    else   
    begin     
    if @OrderType != 0   
    begin   
       set @strTmp = '<(select min'   
    set @strOrder = ' order by ['+ @fldName +'] desc'  
    --如果@OrderType不是0,就执行降序,这句很重要!   
    end   
    else   
    begin   
       set @strTmp = '>(select max'  
       set @strOrder = ' order by ['+ @fldName +'] asc' 
    end    
    if @PageIndex = 1   
    begin   
       if @strWhere != ''     
        set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from ['+ @tblName +'] where ' + @strWhere + ' ' + @strOrder   
        else   
        set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from ['+ @tblName +'] '+ @strOrder  
    --如果是第一页就执行以上代码,这样会加快执行速度  
    end   
    else   
    begin   
    --以下代码赋予了@strSQL以真正执行的SQL代码   
    set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from [' + @tblName +'] where [' + @fldName + ']' + @strTmp + '(['+ @fldName + ']) 
    from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['+ @fldName + '] from ['+ @tblName +']' + @strOrder + ') as tblTmp)'+ @strOrder 
    
    
    
    if @strWhere != '' 
    
       set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from ['+ @tblName +'] where [' + @fldName + ']' + @strTmp + '(['+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['+ @fldName + '] 
    from ['+ @tblName +'] where ' + @strWhere + ' ' + @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder 
    
    end 
    
    end    
    
    exec ( @strSQL) 
    GO
    asp.net利用存储过程分页sqlserver代码
    C#代码
    using System.Data ; 
    using System.Data.SqlClient ; 
    using Microsoft.ApplicationBlocks.Data ; 
    using System.Web ; 
    using System.Web.UI ; 
    namespace RssLayer.PageHelper 
    { 
        /**//// <summary> 
        /// 分页类PagerHelper 的摘要说明。 
        /// </summary> 
        public class PagerHelper 
        { 
            private string connectionString; 
            public PagerHelper(string tblname,string sortname,bool docount,string connectionString) 
            { 
                this.tblName = tblname; 
                this.fldName = sortname ; 
                this.connectionString = connectionString ; 
                this.docount = docount; 
            } 
    
            public PagerHelper(string tblname,bool docount, 
                string strGetFields,    string fldName,int pagesize, 
                int pageindex,bool ordertype,string strwhere,string connectionString         
                ) 
            { 
                this.tblName = tblname ;             
                this.docount = docount ; 
                this.strGetFields = strGetFields ; 
                this.fldName = fldName; 
                this.pagesize = pagesize ; 
                this.pageindex = pageindex; 
                this.ordertype = ordertype ; 
                this.strwhere = strwhere ; 
                this.connectionString = connectionString ; 
    
            } 
    
            /**//// <summary> 
            /// 得到记录集的构造函数 
            /// </summary> 
            /// <param name="tblname"></param> 
            /// <param name="strwhere"></param> 
            /// <param name="connectionString"></param> 
            public PagerHelper(string tblname,string strwhere,string connectionString)     
            { 
                this.tblName = tblname; 
                this.strwhere = strwhere ; 
                this.docount = true; 
                this.connectionString = connectionString ; 
            } 
    
            private string tblName; 
            public string TblName 
            { 
                get{return tblName;} 
                set{tblName =value;} 
            } 
    
            private string strGetFields="*"; 
            public string StrGetFields 
            { 
                get{return strGetFields ;} 
                set{strGetFields =value;} 
            } 
    
            private string fldName=string.Empty; 
            public string FldName 
            { 
                get{return fldName ;} 
                set{fldName =value;} 
            }
    
            private int pagesize =10; 
            public int PageSize 
            { 
                get{return pagesize ;} 
                set{pagesize =value;} 
            } 
    
            private int pageindex =1; 
            public int PageIndex 
            { 
                get{return pageindex ;} 
                set{pageindex =value;} 
            }
    
            private bool docount=false; 
            public bool DoCount 
            { 
                get{return docount ;} 
                set{docount =value;} 
            } 
    
            private bool ordertype=false; 
            public bool OrderType 
            { 
                get{return ordertype ;} 
                set{ordertype =value;} 
            } 
    
            private string strwhere=string.Empty ; 
            public string StrWhere 
            { 
                get{return strwhere ;} 
                set{strwhere =value;} 
            } 
    
            public IDataReader GetDataReader() 
            { 
    
                if(this.docount) 
                { 
                    throw new ArgumentException("要返回记录集,DoCount属性一定为false"); 
                }          
            //    System.Web.HttpContext.Current.Response.Write(pageindex); 
    
                return SqlHelper.ExecuteReader(connectionString,CommandType.StoredProcedure,"Pagination", 
                    new SqlParameter("@tblName",this.tblName), 
                    new SqlParameter("@strGetFields",this.strGetFields), 
                    new SqlParameter("@fldName",this.fldName), 
                    new SqlParameter("@PageSize",this.pagesize), 
                    new SqlParameter("@PageIndex",this.pageindex), 
                    new SqlParameter("@doCount",this.docount), 
                    new SqlParameter("@OrderType",this.ordertype), 
                    new SqlParameter("@strWhere",this.strwhere) 
                    ); 
            } 
            public DataSet GetDataSet() 
            { 
                if(this.docount) 
                { 
                    throw new ArgumentException("要返回记录集,DoCount属性一定为false"); 
                }     
    
                return SqlHelper.ExecuteDataset(connectionString,CommandType.StoredProcedure,"Pagination", 
                    new SqlParameter("@tblName",this.tblName), 
                    new SqlParameter("@strGetFields",this.strGetFields), 
                    new SqlParameter("@fldName",this.fldName), 
                    new SqlParameter("@PageSize",this.pagesize), 
                    new SqlParameter("@PageIndex",this.pageindex), 
                    new SqlParameter("@doCount",this.docount), 
                    new SqlParameter("@OrderType",this.ordertype), 
                    new SqlParameter("@strWhere",this.strwhere) 
                    ); 
            } 
            public int GetCount() 
            { 
                if(!this.docount) 
                { 
                    throw new ArgumentException("要返回总数统计,DoCount属性一定为true"); 
                }                    
    
                return (int)SqlHelper.ExecuteScalar(connectionString,CommandType.StoredProcedure,"Pagination", 
                    new SqlParameter("@tblName",this.tblName), 
                    new SqlParameter("@strGetFields",this.strGetFields), 
                    new SqlParameter("@fldName",this.fldName), 
                    new SqlParameter("@PageSize",this.pagesize), 
                    new SqlParameter("@PageIndex",this.pageindex), 
                    new SqlParameter("@doCount",this.docount), 
                    new SqlParameter("@OrderType",this.ordertype), 
                    new SqlParameter("@strWhere",this.strwhere) 
                    ); 
            }         
    
        } 
    }
    asp.net利用存储过程分页后台代码
  • 相关阅读:
    Java安全之JNDI注入
    Visual Studio 2019 升级16.8之后(升级.Net 5),RazorTagHelper任务意外失败
    .Net Core 3.1升级 .Net 5后出现代码错误 rzc generate exited with code 1.
    重走py 之路 ——普通操作与函数(三)
    重走py 之路 ——字典和集合(二)
    设计模式结(完结篇)
    重走py 之路 ——列表(一)
    RestfulApi 学习笔记——分页和排序(五)
    RestfulApi 学习笔记——查询与过滤还有搜索(五)
    Android开发 Error:The number of method references in a .dex file cannot exceed 64K.Android开发 Error:The number of method references in a .dex file cannot exceed 64K
  • 原文地址:https://www.cnblogs.com/hehehehehe/p/6211918.html
Copyright © 2011-2022 走看看