Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / VB

VS2010/VB.NET update single column for a rows in a DataTable

0.00/5 (No votes)
22 Sep 2010CPOL 18.4K  
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.

VB
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.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)