C# 正在从sqlserver获取顶部(起始编号、结束编号)行
我在asp.net页面中使用网格视图,从SQL Server获取数据并将其放置在网格视图中 现在我的问题是,我使用分页,在网格视图中每页放置50行。我想在启动时从数据库中获取前50行并绑定到网格视图,当我单击下一页时,再次转到数据库并获取第二个前50行并绑定到GV。这个过程必须继续,直到从数据库中取出最后一行C# 正在从sqlserver获取顶部(起始编号、结束编号)行,c#,asp.net,sql,sql-server,sql-server-2008,C#,Asp.net,Sql,Sql Server,Sql Server 2008,我在asp.net页面中使用网格视图,从SQL Server获取数据并将其放置在网格视图中 现在我的问题是,我使用分页,在网格视图中每页放置50行。我想在启动时从数据库中获取前50行并绑定到网格视图,当我单击下一页时,再次转到数据库并获取第二个前50行并绑定到GV。这个过程必须继续,直到从数据库中取出最后一行 您能告诉我如何编写查询以实现此目的吗???通常,您将向此查询传递两个参数@pageNum和@pageSize,然后您可以执行以下操作: With ranked AS --- Or yo
您能告诉我如何编写查询以实现此目的吗???通常,您将向此查询传递两个参数@pageNum和@pageSize,然后您可以执行以下操作:
With ranked AS --- Or you can make it a view
(
SELECT ROW_NUMBER() OVER(ORDER BY OrderField) AS RowNum, *
FROM YourTableReference
)
SELECT * --Your fields here
FROM Ranked
WHERE RowNum BETWEEN ((@PageNum - 1) * @PageSize + 1)
AND (@PageNum * @PageSize)
ORDER BY SomeField
阅读有关SQL分页的更多信息,有几种方法可以创建存储过程
sp_fetcrangeofrecords
@st int,
@ed int
As
BEGIN
WITH CTE as (select row_number() over (order by (select 0)) as rn,* from your table)
select col1,col2,... from table where rn between @st and @ed
END
试一下,你就会知道怎么做
也会有所帮助。关键字“BETWEEN”附近的语法不正确我不使用SQL Server2008@KrishnaThota,它应该不会出错,请检查语法。你也可以看到一个现场演示,看看我的编辑。;以RowNums为参数,选择ROW_NUMBER OVERORDER BY Order_Date DESC为RowNum,*从@tbl SET@MaxPageSize=选择CEILINGCASTMAXRowNum为FLOAT/CAST@PageSize作为RowNums的FLOAT,为什么这不可能??它在关键字附近返回不正确的语法SET@KrishnaThota不能在定义CTE后设置变量。试着在定义CTE之前设置这个变量。有很多次,很多次,很多次。请阅读这些评论及其引用的文章: