2015-10-12 6 views
-2

Я хочу отфильтровать таблицу данных на основе некоторых условий.Как отфильтровать таблицу данных

У меня есть таблица данных, как этот

  Tabel A 
MobileNo  Email 
9999999999 [email protected] 
8888888888 [email protected] 
9999999999 [email protected] 
7777777777 [email protected] 

Я хочу получить четкое значение, основанное на мобильном телефоне, также мне нужно данные, которые не выходят в отдельной таблице, но таблицы A имеют
Like

 
    Distinct Table           Ignore Table 
    MobileNo  Email        MobileNo  Email 
9999999999 [email protected]      9999999999 [email protected] 
8888888888 [email protected] 
7777777777 [email protected] 

I также попробовали googling, но это не очень понятно.

Заранее спасибо

+0

Как решить, какой один из 9999999999 по адресам электронной почты вы хотите игнорировать? –

+0

Как выглядит представление данных в коде? – theB

+0

Я просто даю ссылку. независимо от того, что я хочу получить отдельно и игнорировать данные –

ответ

0

Вы можете использовать выбора метода на DataTable

Dim dtFiltered As New DataTable() 
dtFiltered = dtAllData.DefaultView.ToTable(True, "MobileNo") 

dtAllData является DataTable, содержащий все записи
dtFiltered содержит только Четкие отчеты

Для получения более подробной проверки MSDN article

UPDATE на основе вашего комментария
В этом случае вам нужно использовать, кроме как в datatable-comparison-using-linq-except-intersect-union

Из всех записей извлечения отдельных записей в второй DataTable, а затем использовать Кроме сравнивать первый и второй DataTable

+0

Я получаю отличные данные, но на самом деле я встал, как получить Игнорируемые строки Dim ValidData = (Из строки В tbValid.AsEnumerable() Пусть Mobile = row.Field (Of String) («Мобильный») Групповая строка Mobile Into DupMobile = Группа Выберите DupMobile.First).ToArray –

+0

Проверить обновление для использования, кроме предложения – haraman

+0

Спасибо. это помогает мне понять. –

0

Спасибо за вся ваша помощь

Наконец я получил решение

 



    Dim ValidData = (From row In tbValid.AsEnumerable() 
          Let Mobile = row.Field(Of String)("Mobile") 
          Group row By Mobile Into DupMobile = Group 
          Select DupMobile.First).ToArray 

    Dim Ignoredata = tbValid.AsEnumerable().Except(ValidData.AsEnumerable(), DataRowComparer.Default).ToArray 

0

Из вашего примера все, что вы ВГА e done - это ваш мобильный телефон. что означает, что вы могли бы создать SQL, чтобы сказать что-то вроде: ORDER BY MobileNo DESC в конце инструкции. По крайней мере, он будет отображаться так же, как

Или вы означая:

Dim dv As DataView = New DataView(DataTable.DataView) 
dv.RowFilter = "%" &... 
Смежные вопросы