0

我想选择那些有重复的 gesellschaft_id。我使用了下面的代码。这是选择不同的 gesellschaft_id。如何编写选择表达式来选择该行,哪些行,gesellschaft_id 在数据表中有更多的值?

foreach (DataRow dr1 in table1.Rows)
        {
            DataRow[] drDup = table2.Select("('" + dr1[0].ToString() + "' = gesellschaft_id ) AND Count(gesellschaft_id)>1");

        }
4

3 回答 3

1

你可以做这样的事情,假设第一列是你想要检查重复的那一列。这当然假设您有可用的 Linq。

var duplicateIds = table2.AsEnumerable()
                         .GroupBy(row = row[0])
                         .Where(x => x.Count() > 1);

如果您在问题中添加更多细节,那将很有帮助。

于 2012-11-30T10:08:59.597 回答
1

这将为您提供在多行中存在DataRowa 的 s :gesellschaft_id

var rowsWithADuplicateGesellschaftId = table1.Rows
    .Cast<DataRow>()
    .GroupBy(row => row["gesellschaft_id"])
    .Where(group => group.Count() > 1)
    .ToArray();
于 2012-11-30T10:15:12.097 回答
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

于 2012-11-30T10:06:33.460 回答