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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值