1

我有一个包含日期列的数据表(RequestDate)。我需要使用 Linq 删除 RequestDate 列中值超过 30 天的所有行。

4

3 回答 3

4

尝试这个:

dt.Rows.OfType<DataRow>()
    .Where(r => DateTime.Now.Date - r.Field<DateTime>("RequestDate").Date > TimeSpan.FromDays(30))
    .ToList()
    .ForEach(r => r.Delete());
于 2013-09-10T19:34:54.987 回答
0

您可以使用 LINQ 查找应删除的行:

var rowsToDelete = source.AsEnumerable()
                         .Where(r => DateTime.Now - r.Field<DateTime>("RequestDate") > TimeSpan.FromDays(30))
                         .ToList();

但仍需要foreach循环从源中删除行DataTable

foreach(var row in rowsToDelete)
    source.Remove(row);
于 2013-09-10T19:29:40.713 回答
0

这里的简单解决方案:

Dim rows As DataRow() = (From anyNamehere In yourTableName.AsEnumerable().Cast(Of DataRow)() Where anyNamehere .Field(Of Integer)("id") = 1).ToArray()
                    For Each row As DataRow In rows
                        yourTableName.Rows.Remove(row)
于 2015-07-28T11:04:23.157 回答