从sqlserver获取Top(开始no,Ending no)行

Kri*_*ota 3 c# sql sql-server asp.net sql-server-2008

我在我的asp.net页面中使用网格视图,我从SQL Server获取数据并放入我的网格视图中.

现在我的问题是,我正在使用分页并在网格视图中每页放置50行.我想在启动时从数据库中获取前50行并绑定到网格视图,当我点击下一页时,再次转到数据库并获取第二个前50行并绑定到GV.并且这个过程一直持续到从数据库中取出最后一行.

你能告诉我如何写Query来实现这个吗?

Mah*_*mal 5

通常,你会传递给该查询两个参数,@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
Run Code Online (Sandbox Code Playgroud)

现场演示