c# - 在 DataTable 上创建 LINQ 以获取 RowNumber

标签 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)。

最佳答案

如果你返回结果,你可以像这样按排名过滤列表:

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();

关于c# - 在 DataTable 上创建 LINQ 以获取 RowNumber,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10074551/

相关文章:

sql - 对于 Entity Framework ,对于 "TOP 1"使用 .First() 还是 .Take(1) 更好?

c# - C# -ASP.NET 中的一些性能 [注意事项/注意事项] 是什么

c# - 如何将 FontFamily 存储为 StaticResource?

涉及多个项目时的 C# 非托管导出 (Robert Giesecke)

c# - 如何禁用按钮

c# - 如何从抽象类列表中检索派生类?

C# linq查询数据表take方法

linq - Linq的大于条件加盟

c# 通过环境变量分配版本号

javascript - 使用 javascript 启用 ASP.NET 超链接