Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 LINQ + DataTable  [new]
valex13
Member

Откуда: Иркутск
Сообщений: 349
Мне необходимо в DataGridView (DataSource = DataTable) сделать поиск по всей колонкам вхождения определенного значения.
Заранее мне неизвестно в какой колонке может содержаться совпадающий текст.
Можно ли сделать такую выборку с помощью LINQ и если можно, то каким образом?
7 фев 12, 11:19    [12045461]     Ответить | Цитировать Сообщить модератору
 Re: LINQ + DataTable  [new]
pation
Member

Откуда: Москва
Сообщений: 4498
valex13,

IEnumerable<System.Data.DataRow> SearchText(System.Data.DataTable table, string searchStr)
        {
            return table.Rows.Cast<System.Data.DataRow>()
                .Where(r => r.ItemArray
                    .Select(i => i.ToString())
                    .Any(s => s.Contains(searchStr)));
        }
7 фев 12, 13:38    [12046638]     Ответить | Цитировать Сообщить модератору
 Re: LINQ + DataTable  [new]
valex13
Member

Откуда: Иркутск
Сообщений: 349
Спасибо
7 фев 12, 18:22    [12049513]     Ответить | Цитировать Сообщить модератору
 Re: LINQ + DataTable  [new]
valex13
Member

Откуда: Иркутск
Сообщений: 349
Получилось:
Private Function FindRow(ByVal strSourceText As String)
        If strSourceText <> "" And Not m_tblSourceGrid Is Nothing Then
            Dim SourceTable As DataTable = CType(m_tblSourceGrid.DataSource.DataSource, DataTable)
            If Not SourceTable Is Nothing Then
                Dim dr = SourceTable.Rows.Cast(Of DataRow)().Where(Function(m) m.ItemArray().Select(Function(i) i.ToString()).Any(Function(p) p.Contains(strSourceText)))
                If dr.Count = 0 Then Return Nothing Else Return dr.First()
            End If
        End If


        Return Nothing
    End Function

Вопрос. А можно ли в запрос еще включить с какой строки (номер строки) искать? Режим поиск далее.
7 фев 12, 19:20    [12049818]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить