我想选择那些有重复的gesellschaft_id。我使用下面的代码。这是选择不同的gesellschaft_id。如何编写select表达式来选择那一行,哪些行,gesellschaft_id在数据表中有更多的值?
foreach (DataRow dr1 in table1.Rows)
{
DataRow[] drDup = table2.Select("('" + dr1[0].ToString() + "' = gesellschaft_id ) AND Count(gesellschaft_id)>1");
}
答案 0 :(得分:1)
public ArrayList FindDuplicateRows(DataTable dTable, string colName)
{
Hashtable hTable = new Hashtable();
ArrayList duplicateList = new ArrayList();
//add duplicate item value in arraylist.
foreach (DataRow drow in dTable.Rows)
{
if (hTable.Contains(drow[colName]))
duplicateList.Add(drow);
else
hTable.Add(drow[colName], string.Empty);
}
return duplicateList;
}
同样有用的重复查找和添加/删除链接:
http://www.dotnetspider.com/resources/4535-Remove-duplicate-records-from-table.aspx
http://www.dotnetspark.com/kb/94-remove-duplicate-rows-value-from-datatable.aspx
答案 1 :(得分:1)
您可以执行类似的操作,假设第一列是您要检查重复的列。这当然假设您有Linq可用。
var duplicateIds = table2.AsEnumerable()
.GroupBy(row = row[0])
.Where(x => x.Count() > 1);
如果您在问题中添加更多细节,那将会有所帮助。
答案 2 :(得分:1)
这将为您提供DataRow
个gesellschaft_id
,其中var rowsWithADuplicateGesellschaftId = table1.Rows
.Cast<DataRow>()
.GroupBy(row => row["gesellschaft_id"])
.Where(group => group.Count() > 1)
.ToArray();
存在于多行中:
{{1}}