C#中GridView中的分页算法重写

本文介绍了一个用于SQL Server的通用分页存储过程P_PORTAL_GENERALPAGING,该过程通过输入参数来灵活配置查询条件,实现对指定表的数据进行高效分页查询。此存储过程使用了ROW_NUMBER()函数为结果集中的每条记录分配一个唯一的行号,从而实现快速定位所需的数据范围。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

USE [PortalTemplate3]
GO
/****** Object:  StoredProcedure [dbo].[P_PORTAL_GENERALPAGING]    Script Date: 08/26/2014 15:56:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


ALTER PROCEDURE [dbo].[P_PORTAL_GENERALPAGING]
 @p_table  varchar(8000),
@p_sqlwhere varchar(8000),
@p_columns  varchar(8000),
@p_ordercolumn  varchar(8000),
@p_rowstart int,
@p_rowend int,
@p_groupby varchar(8000)
AS
BEGIN
SET NOCOUNT ON;
 
   DECLARE @PagingSQL NVARCHAR(max)
   DECLARE @CountSQL NVARCHAR(max)
   DECLARE @ParmDefinition nvarchar(500)


set  @PagingSQL = N'With TempPageTable As'
+'(SELECT '+@p_columns+',ROW_NUMBER() OVER (Order By '+@p_ordercolumn+') as RowNumber FROM '+@p_table+' '+@p_sqlwhere+' '+@p_groupby+')'
+' Select * From TempPageTable Where RowNumber between @rowStart and @rowEnd;'
--+' Select Count(*) From '+ @tableParm+' '+ @sqlWhereParm
    
    
    set @CountSQL = N'Select Count(*) From '+ @p_table+' '+ @p_sqlwhere +' '+@p_groupby
    
set @ParmDefinition = N'@rowStart int,@rowEnd int';


EXECUTE sp_executesql @PagingSQL,@ParmDefinition,@rowStart=@p_rowstart,@rowEnd=@p_rowend;
     EXECUTE sp_executesql @CountSQL
END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值