存储过程

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#调用方法

    高效分页存储过程 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.5.1版发布!

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

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

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

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

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

随机推荐

  1. 关于Java(标识符规则)

    Java 是大小写敏感的语言. Java 标识符组成 Java 标识符组成: 字母,数字,下划线和美元符 $ Java 标识符规则 仅包含 字母,数字,下划线和美元符 开头不能使数字 不能使 Java ...

  2. 概率质量函数:怀孕周期的PMF

    __author__ = 'dell' import surveyimport Pmfimport matplotlib.pyplot as pyplot table = survey.Pregnan ...

  3. JSP - request - 1

    <%@ page language="java" contentType="text/html;charset=utf8" %> <%@ pa ...

  4. Js使用word书签填充内容

    Js使用word书签填充内容 1.在模板文件中需要填充的地方插入书签 填充内容为:(|光标所在处) 填写书签名,点击添加完成: 2.使用js打开模板,获取书签位置,填充数据: function pri ...

  5. SharePoint REST api

    http://msdn.microsoft.com/en-us/magazine/dn198245.aspx Understanding and Using the SharePoint 2013 R ...

  6. Microsoft Office 2013 激活方法

    Microsoft Office 2013 激活方法   Microsoft Office 2013是微软的新一代Office办公软件,全面采用Metro界面,包括Word.PowerPoint.Ex ...

  7. 《程序设计中的组合数学》——polya计数

    我们在高中的组合数学中常常会碰到有关涂色的问题,例如:用红蓝两种颜色给正方形的四个顶点涂色,会有几种不同的方案.在当时,我们下意识的认为,正方形的四个顶点是各不相同的,即正方形是固定的.而实际上我们知 ...

  8. 低版本Xcode 出现could not find developer disk image问题

    解决Xcode在ipad/iphone9.2系统真机测试时出现could not find developer disk image问题,只要拷贝这个文件(链接: http://pan.baidu.c ...

  9. Spring Boot 入门

    Spring Boot自动配置 http://blog.javachen.com/2015/03/13/how-to-run-spring-boot-application.html http://b ...

  10. web —— jsp笔记

    cookies 的使用 1.首先确保客户机上允许使用cookie,一般在浏览器的 隐私 设置项里可以设置. 2.下面给出具体的例子 a)index.jsp中如果没注册过,让游客注册,如果注册了,拿出贮 ...