日期:2014-05-16  浏览次数:20912 次

grid分页如何做
找到个函数
GetData(string sql,int index,int line,out count)

第一个参数是查询语句,index是起始行,默认为0,line是要展现多少行,count是满足sql语句的总行数
这个函数不会用,如何来实现分页的效果
------解决方案--------------------
GetData(string sql,int index,int line,out count)

这不是C#问题,而是SQL问题,你需要做一个store proc接收上面的参数, SQL里大致可以这样写:

CREATE PROC [dbo].[spGetDataPaged]
        @sql varchar(512),
@index int, 
@line int,
@count int output
AS
BEGIN
SET NOCOUNT ON;
declare @StartRow int
declare @EndRow int

set @StartRow = (@PageIndex * @PageSize) + 1;
set @EndRow = (@PageIndex +1) * @PageSize;

SELECT * FROM
(
                    -- EXEC @sql; 假代码
) list
Where RowNumber >= @StartRow and RowNumber <= @EndRow;

SELECT @TotalRows =  Count(*) 
FROM -- @sql 假代码

END

其中@sql是第一个输入参数,但我觉得你先从简单的做起,不要弄成动态的,先针对一个特定的QUERY写,填入我上面的SQL里的“假代码”部分,这样简单的多



------解决方案--------------------
SELECT ROW_NUMBER() OVER(ORDER BY ordered DESC) AS rownum, ordered FROM Orders ORDER BY rownum DESC

SQL的话,直接有ROW_NUMBER()就可以解决
------解决方案--------------------
引用:
SELECT ROW_NUMBER() OVER(ORDER BY ordered DESC) AS rownum, ordered FROM Orders ORDER BY rownum DESC

SQL的话,直接有ROW_NUMBER()就可以解决

这个只适合SQL 2005以及更高级的版本