如何在VB.NET中使用LINQ按列值查找DataTable行

时间:2012-01-07 12:14:31

标签: vb.net linq datatable linq-to-objects datarow

您好我在运行时创建了一个Dynamic DataTable。安装程序就像这样

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

我想要做的是提出一个我可以用来查找和更新特定行的linq语句。

例如声明将年龄改为'33'WHERE ID ='3'

我的代码到目前为止是:

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

但这不是更新我的DataTable条目。任何帮助,将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:8)

如果我错了,请纠正我。看看:

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")

答案 1 :(得分:2)

这不是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()