可选自定义分页的SQL查询,C#ObjectDataSource

时间:2016-11-21 18:37:03

标签: c# sql customization objectdatasource

ObjectDataSource的 SQL自定义分页查询 ,允许每个请求仅提供与特定页面相关的数据,从而提高加载速度。

问题是 如何选择分页?

runtime.exclude

目标是让SQL函数只能为该特定页面获取数据,或者它可以关闭分页获取所有相关数据。

以上是我尝试使用CASE来切换是否根据变量PagedData的值来分页查询。但是,此方法以错误结束。

如果您需要我澄清任何事情,请告诉我。谢谢。

1 个答案:

答案 0 :(得分:1)

你的SQL看起来不正确,但假设它是正确的,这里是如何使用if语句:

 string Query = @"
DECLARE @PagedData int
SET @PagedData = 1

IF @PagedData = 1 
(
  SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY " + _sortColumns + @") AS ResultRank, *
   FROM dbTable
   WHERE (FeatureString LIKE '%gold%')
      AS ProductsWithRowNumber WHERE ResultRank > 
   " + startIndex + " AND ResultRank <= (" + startIndex + " + " + pageSize + @")
)
ELSE 
(
  SELECT * FROM dbTable WHERE (FeatureString LIKE '%gold%')
)";

https://msdn.microsoft.com/en-us/library/ms182717.aspx