Tips and tricks for .NET using ASP and VB code.

Add strongly typed columns and rows to a memory resident data table

Dim DataTable1 As New Data.DataTable

While DataTable1.Columns.Contains("Record ID Column") = False
    Dim NewDataColumn As New Data.DataColumn
    NewDataColumn.ColumnName = "Record ID Column"
    NewDataColumn.DataType = System.Type.GetType("System.Int64")
    NewDataColumn.AutoIncrement = True
    NewDataColumn.AutoIncrementSeed = 0
    NewDataColumn.AutoIncrementStep = 1
    DataTable1.Columns.Add(NewDataColumn)
    Dim DataColumnArray() As Data.DataColumn = {DataTable1.Columns("Record ID Column")}
    DataTable1.PrimaryKey = DataColumnArray
End While

While DataTable1.Columns.Contains("String Column") = False
    Dim NewDataColumn As New Data.DataColumn
    NewDataColumn.ColumnName = "String Column"
    NewDataColumn.DataType = System.Type.GetType("System.String")
    DataTable1.Columns.Add(NewDataColumn)
End While

While DataTable1.Columns.Contains("Date Column") = False
    Dim NewDataColumn As New Data.DataColumn
    NewDataColumn.ColumnName = "Date Column"
    NewDataColumn.DataType = System.Type.GetType("System.DateTime")
    DataTable1.Columns.Add(NewDataColumn)
End While

While DataTable1.Columns.Contains("Boolean Column") = False
    Dim NewDataColumn As New Data.DataColumn
    NewDataColumn.ColumnName = "Boolean Column"
    NewDataColumn.DataType = System.Type.GetType("System.Boolean")
    DataTable1.Columns.Add(NewDataColumn)
End While

Do  'Make NewDataRow reusable by wrapping it in a loop structure.
    Dim NewDataRow As Data.DataRow = DataTable1.NewRow
    NewDataRow.Item("String Column") = "Text 1"
    NewDataRow.Item("Date Column") = Today
    NewDataRow.Item("Boolean Column") = True
    DataTable1.Rows.Add(NewDataRow)
    Exit Do
Loop

Do
    Dim NewDataRow As Data.DataRow = DataTable1.NewRow
    NewDataRow.Item("String Column") = "Text 2"
    NewDataRow.Item("Date Column") = Now
    NewDataRow.Item("Boolean Column") = False
    DataTable1.Rows.Add(NewDataRow)
    Exit Do
Loop

No comments:

Post a Comment

Search This Blog