2016-04-14 2 views
-1

я хочу найти различные значения из столбца DataTable в C#, а также хочет, чтобы хранить все эти различные значения в переменныхНайти различные значения из столбца DataTable в C# и хранить различные значения в переменных

DataTable dtable = new DataTable(); 
    OleDbDataAdapter da = new OleDbDataAdapter("SELECT * from clubbb ", con); 
      da.Fill(dtable, "clubbb"); 
      int toto = bdtable.AsEnumerable().Distinct().Count(); 
+0

попробовать использовать запрос: SELECT DISTINCT столбца из clubbb –

ответ

0

Вы необходимо реализовать интерфейс IEqualityComparer<DataRow>, чтобы обеспечить способ, которым метод Distinct будет использовать, чтобы знать, дублируются ли две строки или нет. Это может быть достигнуто с классом, как это:

public class CustomComparer : IEqualityComparer<DataRow> 
{ 
    public bool Equals(DataRow x, DataRow y) 
    { 
     // your custom equality logic here 
    } 
    public int GetHashCode(DataRow obj) 
    { 
     // return hash code depending on your distinct criteria 
    } 
} 

Затем измените вызов вы сделали:

int toto = bdtable.AsEnumerable().Distinct(new CustomComparer()).Count(); 

У меня была аналогичная проблема, и в моем случае, мне нужно знать различные значения определенного столбца, поэтому я передал имя этого столбца на пользовательский сопоставитель, который я реализовал, так что GetHashCode вернет идентичные хэш-коды для повторяющихся значений.

Вы можете прочитать здесь: https://msdn.microsoft.com/en-us/library/ms132151(v=vs.110).aspx

Надеется, что это помогает :)

Смежные вопросы