c# 4.0 -在c#中删除数据表中的重复行

本文关键字:数据表 删除 | 更新日期: 2023-09-27 17:55:01

我有一个数据表与一些数据在它…数据如下:

____________________________________________________
|    |                    |            |           |
|mid |    usrnme          |   pname    |   prate   |
|---------------------------------------------------
|11  | demo1@gmail.com    |   sample1  |    2000   |
|14  | demo2@live.com     |   sample2  |    5000   |
|15  | demo3@yahoo.com    |   sample3  |    8000   |
|11  | demo1@gmail.com    |   sample1  |    2000   |
|18  | demo4@gmail.com    |   sample4  |    3000   |
====================================================

可以看到,数据表中有两行具有相同的值。所以在我的代码中,我需要检查我的数据表中是否有任何重复的行。如果存在任何重复行,则删除该特定行,然后将下一行移动到已删除的行。在这种情况下,第1行和第4行是相同的,所以它必须被更正。所以第4行要被删除,第5行要被插入到第4行。这样,如果有n行,这n行就需要这样检查和修正。这如何在c#.net中实现呢?我是c#世界的新手。任何人的帮助对我来说都是很大的帮助。提前感谢。

c# 4.0 -在c#中删除数据表中的重复行

使用<Datatable>.DefaultView.ToTable(true)

交货。: dt.DefaultView.ToTable(true);

如果我们需要一个列特定的不同的行,使用

<Datatable>.DefaultView.ToTable(true,<Columns>)

交货。: dt.DefaultView.ToTable(true, "EmpId", "Name");

这是避免在数据表中出现重复值的最简单方法。Linq是实现这一目标的最佳方式。请根据需要更改列的dataTable名称和数据类型。它应该与dataTable数据类型匹配。

  var avoidDuplicates= from row in ds.Tables["DataTableName"].AsEnumerable()
               group row by row.Field<string>("m_id") into rowGroup
               select new
               {  
                   m_id = rowGroup.Key,
     user_name = string.Join(" ", rowGroup.Select(row => row.Field<string>("usrnme")).Distinct().ToArray()),
     p_name = string.Join(" ", rowGroup.Select(row => row.Field<string>("pname")).Distinct().ToArray()),
                                        prate = string.Join(" ", rowGroup.Select(row => row.Field<decimal>("prate")).Distinct().ToArray()),
    }

我希望这将解决您的问题