使用LINQ从数据表中删除行

时间:2013-09-10 19:21:45

标签: linq datatable asp.net-3.5

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

3 个答案:

答案 0 :(得分:2)

试试这个:

dt.Rows.OfType<DataRow>()
    .Where(r => DateTime.Now.Date - r.Field<DateTime>("RequestDate").Date > TimeSpan.FromDays(30))
    .ToList()
    .ForEach(r => r.Delete());

答案 1 :(得分: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);

答案 2 :(得分:0)

这里的简单解决方案:

max=4