Kev*_*Dai 2 sql sql-server asp.net sql-server-2000
如果没有存储过程,如何在ASP.NET中分页从SQL Server中检索的结果集?
您可以使用LINQ,例如:
var customerPage = dataContext.Customers.Skip(50).Take(25);
Run Code Online (Sandbox Code Playgroud)
然后显示这25个客户.
请参阅Scott Guthrie的优秀使用LINQ-to-SQL - 第6部分 - 检索具有服务器端分页的产品.
另一个选项(在SQL Server 2005及更高版本上)是使用有序CTE(公用表表达式) - 类似这样的:
WITH CustomerCTE AS
(
SELECT CustomerID,
ROW_NUMBER() OVER (ORDER BY CustomerID DESC) AS 'RowNum'
FROM Customers
)
SELECT * FROM CustomerCTE
WHERE rownum BETWEEN 150 AND 200
Run Code Online (Sandbox Code Playgroud)
您基本上使用该ROW_NUMBER函数在您的sort critiera上定义CTE ,然后您可以随意选择任意数量的CTE (此处:150到200之间).这是非常有效且非常有用的服务器端分页.将此CTE与您的实际数据表一起加入,您可以检索所需的任何内容!
渣
PS:好的,所以OP只有SQL Server 2000,所以CTE不会工作:-(
如果您无法更新到SQL Server 2005或.NET 3.5,我担心您唯一可行的选择确实是存储过程.您可以这样做 - 请参阅此博客文章使用SQL Server 2000进行Efficient and DYNAMIC服务器端分页,或使用SQL Server存储过程分页
| 归档时间: |
|
| 查看次数: |
492 次 |
| 最近记录: |