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#世界的新手。任何人的帮助对我来说都是很大的帮助。提前感谢。
使用<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()),
}
我希望这将解决您的问题