在DataTable上创建LINQ以获取RowNumber

时间:2012-04-09 14:16:52

标签: c# asp.net linq

SELECT * FROM
 (SELECT distinct ROW_NUMBER() OVER (ORDER BY ProductId desc) AS Ranking,
 ProductId,
 ProductName,
 FROM View_AllArt) 
 AS foo 
 WHERE Ranking > " + i + " AND Ranking <= (" + (j) + ")

ij是可验证的,带有一些整数值。

我如何编写LINQ查询就像这个SQL查询一样,我的View_AllArt将成为dtAccount表。 (我想在DataTable上创建LINQ)。

1 个答案:

答案 0 :(得分:0)

如果您返回结果,则可以按以下排名过滤列表:

var table = GetDataTable(); //retrieve the data

int i = 10;
int j = 20;

table = table.AsEnumerable().Where(r => r.Field<int>("Ranking") >= i && r.Field<int>("Ranking") <= j).AsDataView.ToTable();

修改

您可以避免使用DataTable

的行索引返回行号
table = table.AsEnumerable().Where(r => table.Rows.IndexOf(r) >= i && table.Rows.IndexOf(r) <= j).AsDataView().ToTable();