2012-11-30 46 views
0

我想選擇那些有重複項的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"); 

     } 

回答

1

這會給你的DataRow S的有gesellschaft_id存在於多個行:

var rowsWithADuplicateGesellschaftId = table1.Rows 
    .Cast<DataRow>() 
    .GroupBy(row => row["gesellschaft_id"]) 
    .Where(group => group.Count() > 1) 
    .ToArray(); 
+0

感謝。它爲我工作:) @Steve –

+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

你可以做這樣的事情,假設第一列是其中之一你想檢查重複。這當然假定你有Linq可用。

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

如果您在問題中添加更多細節,那將會有所幫助。