The following code for VS2010 shows how to update a single column for all rows in a DataTable by enumerating through the DataTable as an array using Array.ForEach method.
Private Sub UpdateSingleColumnInAllRows()
Dim dtTable As New DataTable
With dtTable.Columns
.AddRange(New DataColumn() _
{
New DataColumn("ID", System.Type.GetType("System.String")),
New DataColumn("FirstName", System.Type.GetType("System.String")),
New DataColumn("LastName", System.Type.GetType("System.String"))
}
)
End With
dtTable.Rows.Add(New Object() {"100", "Kevin", "Gallagher"})
dtTable.Rows.Add(New Object() {"200", "Katrina", "Gallagher"})
dtTable.Rows.Add(New Object() {"300", "Zack", "Gallagher"})
dtTable.AsEnumerable.ToList.ForEach(
Sub(row) Console.WriteLine("{0} {1}",
row.Item("FirstName"), row.Item("LastName")))
Console.WriteLine()
Array.ForEach(dtTable.AsEnumerable.ToArray,
Sub(row As DataRow) row("Lastname") = row("LastName").ToString.ToUpper)
dtTable.AsEnumerable.ToList.ForEach(
Sub(row) Console.WriteLine("{0} {1}",
row.Item("FirstName"), row.Item("LastName")))
End Sub
In the above code all last names (Gallagher) are updated to (GALLAGHER)
Note that in the Action of the Array.ForEach you need to cast the type of the param to DataRow, otherwise this code will not work.