Как найти строку DataTable по значению столбца с помощью LINQ в VB.NET - PullRequest
1 голос
/ 07 января 2012

Здравствуйте, у меня есть динамическая таблица данных, созданная во время выполнения. Настройка выглядит так

Id |  Name  | Age
-----------------
3  |  Mike  | 21
6  |  John  | 43
8  |  Sara  | 34

Я пытаюсь найти оператор linq, который можно использовать для поиска и обновления определенных строк.

Например, выражение изменить ВОЗРАСТ на '33', ГДЕ ИД = '3'

Мой код Пока что:

-[VB.NET]-
Dim MyRow As DataRow = From column In MyTable.Rows Where column("Id") = 3
MyRow(0)("Age") = 33

Но это не обновляет мою запись в DataTable. Любая помощь будет оценена. Спасибо.

Ответы [ 2 ]

8 голосов
/ 07 января 2012

Поправь меня, если я ошибаюсь. Взгляните на:

Dim row As DataRow = (From column In MyTable.Rows Where column("Id") = 3).FirstOrDefault()
If Not IsNothing(row) Then
row("Age") = 33
End If

ИЛИ вы можете попробовать метод DataTable.Select ().

Dim rows=MyTable.Select("ID=3")
2 голосов
/ 07 января 2012

это не LINQ, но фильтрация данных.

Dim iRow() As DataRow = ParticularSource.Tables(ParticularTable).Select(
    String.Format("ItemID = '{0}'", ParticularID))

ParticularSource - это имя моего набора данных
ParticularTable - это имя моего набора данных
ItemID - этополе, в котором я выполнял поиск
ParticularID - это значение для поиска

iRow(0)("Age") = NewValue
ParticularSource.Tables(ParticularTable).AcceptChanges()
...