如何获得符合特定条件的数据表行数?例如,我有一个带有“DateTime”列的数据表。我想检索数据表的行号,其中“DateTime”等于变量startTime。
我知道如何检索实际行,但不知道数据表中行的行数。
任何帮助将不胜感激:)
答案 0 :(得分:7)
int count = tblData.AsEnumerable()
.Count(row => row.Field<DateTime>("DateTime").Equals(startTime));
或作为查询:
int count = (from row in tblData.AsEnumerable()
where row.Field<DateTime>("DateTime").Equals(startTime)
select row).Count();
答案 1 :(得分:6)
如果我正在阅读正确的问题,使用允许索引的第二个输入的Select
重载可能适合您。像
var indices =
table.AsEnumerable()
.Select((row, index) => new { row, index })
.Where(item => item.row.Field<DateTime?>("DateTime") == startTime)
.Select(item => item.index)
.ToArray();
如果该日期与第一行,第三行和第六行匹配,则数组将包含索引0,2和5.如果您希望行号到,则可以在查询中为每个索引添加1从1开始(例如:.Select(item => item.index + 1)
)
答案 2 :(得分:-1)
这是不可能的。请注意,使用SQL(我假设您使用SQL),不保证返回的行顺序。您的行根据主键进行物理排序。因此,如果您需要可靠的行标识符,则必须使用主键编号/ ID。