选择具有重复值的数据表的所有记录

时间:2016-03-24 03:06:15

标签: c# linq

我们如何从一个数据表中选择特定年份(例如2014年)的所有记录,其中一个列值(此处为2014)在多行上重复 表格使用linq或C#中的任何其他方法。

这是数据表:

datatable

3 个答案:

答案 0 :(得分:1)

自从我与DataTables合作以来已经有一段时间了,但我认为应该这样做。

选择年份在多行中重复的行:

dt.AsEnumerable().GroupBy(x => x["Year"]).Where(x => x.Count() > 1);

仅选择特定年份的行:

dt.AsEnumerable().Where(x => x["Year"] == "2014");

dtSystem.Data.DataTable

答案 1 :(得分:1)

如果您正在尝试检索2014年的所有记录,请使用以下linq查询,IT将检查您的数据列是否有数据,我相信它会有效..

        //selecting all the records of 2014
        IEnumerable<DataRow> dtrow = default(IEnumerable<DataRow>);
        dtrow = yourtable.AsEnumerable().Where(x => x.Field<Int64>("year") == Convert.ToInt64("2014"));
        if (dtrow.Count() > 0)
        {
            dataTbl = dtrow.CopyToDataTable(); //dataTbl is the DataTable
        }

答案 2 :(得分:0)

尝试在数据库中执行此操作,因为它比C#更快。 DB可以有索引但C#没有。

select *, count(1) as totalCount
group by year
having totalCount > 1