千万数量级分页存储过程 +AspNetPager现实分页

时间:2022-11-07 21:27:25

存储过程

USE [ForeignTradeDB]
GO
/****** Object: StoredProcedure [dbo].[CommonGetDataPager] Script Date: 2015/3/26 17:47:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO -- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[CommonGetDataPager]
/*
***************************************************************
** 千万数量级分页存储过程 **
***************************************************************
参数说明:
1.Tables :表名称,视图
2.PrimaryKey :主关键字
3.Sort :排序语句,不带Order By 比如:NewsID Desc,OrderRows Asc
4.CurrentPage :当前页码
5.PageSize :分页尺寸
6.Filter :过滤语句,不带Where
7.Group :Group语句,不带Group By update by Eraker 2011/11/15
***************************************************************/
(
@Tables varchar(),
@PrimaryKey varchar(),
@Sort varchar() = NULL,
@CurrentPage int = ,
@PageSize int = ,
@Fields varchar() = '*',
@Filter varchar() = NULL,
@Group varchar() = NULL
)
AS
/*
测试参数 DECLARE @return_value int
EXEC @return_value = [dbo].[CommonGetDataPager]
@Tables = N'xfq_CustomerVisits left join xfq_M_MemberPoints on xfq_CustomerVisits.MemberLogin=xfq_M_MemberPoints.MemberLogin',
@PrimaryKey = N'xfq_CustomerVisits.ID',
@Sort = N'xfq_CustomerVisits.ExtendField2 desc ',
@CurrentPage =4,
@PageSize = 10,
@Fields = N' xfq_CustomerVisits.ID,xfq_CustomerVisits.Memberlogin,xfq_CustomerVisits.Name,xfq_CustomerVisits.Mobile,xfq_CustomerVisits.ExtendField2,xfq_CustomerVisits.ExtendField7',
@Filter = N'xfq_CustomerVisits.ExtendField1<>2',
@Group = NULL
*/ /*默认排序*/
IF @Sort IS NULL OR @Sort = ''
SET @Sort = @PrimaryKey DECLARE @SortTable varchar()
DECLARE @SortName varchar()
DECLARE @SortName2 varchar()
DECLARE @strSortColumn varchar()
DECLARE @operator char()
DECLARE @type varchar()
DECLARE @prec int /*设定排序语句.*/
IF CHARINDEX('DESC',@Sort)>
BEGIN
SET @strSortColumn = REPLACE(@Sort, 'DESC', '')
--SET @operator = '<='
END
ELSE
BEGIN
IF CHARINDEX('ASC', @Sort) =
SET @strSortColumn = REPLACE(@Sort, 'ASC', '')
--SET @operator = '>='
END set @SortName2= IF CHARINDEX('.', @strSortColumn) >
BEGIN
SET @SortTable = SUBSTRING(@strSortColumn, , CHARINDEX('.',@strSortColumn))
-- IF CHARINDEX(',', @strSortColumn) >
-- begin
-- SET @SortName = SUBSTRING(@strSortColumn, CHARINDEX('.',@strSortColumn) + , CHARINDEX(',', @strSortColumn)-CHARINDEX('.',@strSortColumn) - )
-- set @sortname2=SUBSTRING(@strSortColumn, CHARINDEX(',',@strSortColumn) +len(@SortTable)+ , LEN(@strSortColumn))
-- end
--else
-- begin
-- SET @SortName = SUBSTRING(@strSortColumn, CHARINDEX('.',@strSortColumn) + , LEN(@strSortColumn))
-- end
END
ELSE
BEGIN
SET @SortTable = @Tables
--SET @SortName = @strSortColumn
END --SELECT @type=t.name, @prec=c.prec
--FROM sysobjects o
--JOIN syscolumns c on o.id=c.id
--JOIN systypes t on c.xusertype=t.xusertype
--WHERE o.name = @SortTable AND c.name in (@SortName,@SortName2) --IF CHARINDEX('char', @type) >
-- SET @type = @type + '(' + CAST(@prec AS varchar) + ')' DECLARE @strPageSize int
DECLARE @strStartRow int
DECLARE @strFilter varchar()
DECLARE @strSimpleFilter varchar()
DECLARE @strGroup varchar() /*默认当前页*/
IF @CurrentPage <
SET @CurrentPage = /*设置分页参数.*/
SET @strPageSize = CAST(@PageSize AS int)
SET @strStartRow = CAST(((@CurrentPage - )*@PageSize + ) AS int) /*筛选以及分组语句.*/
IF @Filter IS NOT NULL AND @Filter != ''
BEGIN
SET @strFilter = ' WHERE ' + @Filter + ' '
--SET @strSimpleFilter = ' AND ' + @Filter + ' '
END
ELSE
BEGIN
SET @strSimpleFilter = ''
SET @strFilter = ''
END
IF @Group IS NOT NULL AND @Group != ''
SET @strGroup = ' GROUP BY ' + @Group + ' '
ELSE
SET @strGroup = '' /*执行查询语句*/ --declare @strSQL varchar()
--set @strSQL='SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY '+@Sort+') AS ROWID,'
--set @strSQL=@strSQL+@Fields+' FROM '+@Tables+@strFilter+' '+ @strGroup
--set @strSQL=@strSQL+') AS sp WHERE ROWID BETWEEN '+str((@CurrentPage-)*@strPageSize+)
--set @strSQL=@strSQL+' AND '+str(@strStartRow+@strPageSize-)
--exec (@strSQL) declare @strSQL varchar()
set @strSQL='WITH TB1 AS ('
set @strSQL=@strSQL+'SELECT ROW_NUMBER() OVER (ORDER BY '+@Sort+') AS ROWID,'
set @strSQL=@strSQL+@Fields+' FROM '+@Tables+@strFilter+' '+ @strGroup
set @strSQL=@strSQL+'), TB2 AS ( SELECT COUNT(1) AS ROWS FROM TB1 ) SELECT * FROM TB1,TB2 '
SET @strSQL=@strSQL+'WHERE ROWID BETWEEN '+str((@CurrentPage-)*@strPageSize+)
set @strSQL=@strSQL+' AND '+str(@strStartRow+@strPageSize-)
exec (@strSQL)

后台代码

DataTable dt = new Product_Bll().CommonGetDataPager(表名称,视图, 关键字段, 排序字段, AspNetPager1.CurrentPageIndex, AspNetPager1.PageSize, 需要获取的字段, 条件,Group语句
); AspNetPager1.RecordCount = dt==null?:Convert.ToInt32(dt.Rows[]["ROWS"]);//AspNetPager插件  
rpt_Pro_Class.DataSource = dt;
rpt_Pro_Class.DataBind();
if (dt == null) {
this.lbl_No_Record.Text = "<tr><td height=30 colspan=10>没有找到任何数据!</td></tr>"; }
else { this.lbl_No_Record.Text = ""; }

千万数量级分页存储过程 +AspNetPager现实分页的更多相关文章

  1. MySql通用分页存储过程

    MySql通用分页存储过程 1MySql通用分页存储过程 2 3过程参数 4p_cloumns varchar(500),p_tables varchar(100),p_where varchar(4 ...

  2. SQL 单表分页存储过程和单表多字段排序和任意字段分页存储过程

      第一种:单表多字段排序分页存储过程       --支持单表多字段查询,多字段排序 create PROCEDURE [dbo].[UP_GetByPageFiledOrder] ( ), --表 ...

  3. 完整的分页存储过程以及c&num;调用方法

    高效分页存储过程 USE [db] GO /****** 对象: StoredProcedure [dbo].[p_Page2005] 脚本日期: // :: ******/ SET ANSI_NUL ...

  4. 1、SQL可搜索可排序可分页存储过程, 2、范围内的随机时间 适用于sql 2008以上

    -- ============================================= -- Author: 蜘蛛王 -- Create date: 2015-10-29 -- Descri ...

  5. SQL Server 2008 通用分页存储过程

    1.alert USE [数据库名称] GO /****** Object: StoredProcedure [dbo].[dbTab_PagerHelper] Script Date: 08/22/ ...

  6. sql server 分页存储过程

    ----------------------分页存储过程------------------------------------------------------------------------ ...

  7. AspNetPager 免费分页控件7&period;5&period;1版发布!

    AspNetPager 免费分页控件7.5.1版发布,本次升级主要内容有: 修正了ShowDisabledButtons为false时html闭合标签丢失的bug:改为从System.Web.UI.W ...

  8. MYSQL分页存储过程及事务处理

    最近给客户做的一小系统是SQLSERVER的数据库,因为特殊原因要切换到MYSQL上去,切换数据库确实让人头疼的,SQLSERVER和MYSQL的存储过程还是有很大差别的,下面是我做切换时转换的MYS ...

  9. SQL Server利用RowNumber&lpar;&rpar;内置函数与Over关键字实现通用分页存储过程(支持单表或多表结查集分页)

    SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程,支持单表或多表结查集分页,存储过程如下: /******************/ --Author:梦在旅 ...

随机推荐

  1. angular源码阅读,依赖注入的原理:injector&comma;provider&comma;module之间的关系。

    最开始使用angular的时候,总是觉得它的依赖注入方式非常神奇. 如果你跳槽的时候对新公司说,我曾经使用过angular,那他们肯定会问你angular的依赖注入原理是什么? 这篇博客其实是angu ...

  2. Gallery 图片画廊

    Gallery 图片画廊 学习网址http://amazeui.org/widgets/gallery?_ver=2.x

  3. 基于 MeanShift 算法的目标跟踪问题研究

    参考:http://www.cnblogs.com/tornadomeet/archive/2012/03/15/2398769.html MeanShift 算法作为一种基于特征的跟踪方法,基本思想 ...

  4. 学习LCMapString和LCMapStringEx

    LCMapStringEx: http://msdn.microsoft.com/en-us/library/windows/desktop/dd318702(v=vs.85).aspx For a ...

  5. hadoop备战:hadoop&comma;hbase兼容版本号汇总

    Hbase的安装须要考虑Hadoop的版本号,即兼容性.有不足的希望能指出. 下面考究官网得到的,关于hadoop版本号和hbase版本号可到下面网址中下载:http://mirror.bit.edu ...

  6. Android--仿QQ侧滑菜单

    首先还是先看一下效果图吧,这个示例在网上能找到很多,我主要在此是做一个小结和一些代码的分析,当是自己在学习过程中的一个积累,因为网上同样的文章很多,所以也无法探究最初的来源是哪里了. 我们可以从效果图 ...

  7. GSON 简介 示例

    Gson简介 目前解析json最常用的三种工具:org.json(Java常用的解析),fastjson(阿里巴巴出的),Gson(Google出的),解析速度最快的是Gson. Gson的全名为Go ...

  8. Ubuntu Linux系统下的SVN客户端工具PySVN

    在Windows下面一直在用TortoiseSVN做为SVN客户端工具,但它居然没提供Linux版本,无视Linux用户的存在.它视我如空 气,偶视它如废土.开始探索尝试其他跨平台的SVN客户端,最后 ...

  9. VS问题

    ref:https://q.cnblogs.com/q/86096/

  10. Elasticsearch学习笔记三

    PS:前面两章已经介绍了ES的基础及REST API,本文主要介绍ES常用的插件安装及使用. Elasticsearch-Head Head是一个用于管理Elasticsearch的web前端插件,该 ...