Creazione DataTable








' Put the next line into the Declarations section.

private dataSet As DataSet

Private Sub MakeDataTables()
' Run all of the functions.

MakeParentTable()
MakeChildTable()
MakeDataRelation()
BindToDataGrid()
End Sub

Private Sub MakeParentTable()
' Create a new DataTable.

Dim table As DataTable = new DataTable("ParentTable")

' Declare variables for DataColumn and DataRow objects.

Dim column As DataColumn
Dim row As DataRow

' Create new DataColumn, set DataType, ColumnName

' and add to DataTable.

column = New DataColumn()
column.DataType = System.Type.GetType("System.Int32")
column.ColumnName = "id"
column.ReadOnly = True
column.Unique = True

' Add the Column to the DataColumnCollection.

table.Columns.Add(column)

' Create second column.

column = New DataColumn()
column.DataType = System.Type.GetType("System.String")
column.ColumnName = "ParentItem"
column.AutoIncrement = False
column.Caption = "ParentItem"
column.ReadOnly = False
column.Unique = False

' Add the column to the table.

table.Columns.Add(column)

' Make the ID column the primary key column.

Dim PrimaryKeyColumns(0) As DataColumn
PrimaryKeyColumns(0)= table.Columns("id")
table.PrimaryKey = PrimaryKeyColumns

' Instantiate the DataSet variable.

dataSet = New DataSet()

' Add the new DataTable to the DataSet.

dataSet.Tables.Add(table)

' Create three new DataRow objects and add

' them to the DataTable

Dim i As Integer
For i = 0 to 2
row = table.NewRow()
row("id") = i
row("ParentItem") = "ParentItem " + i.ToString()
table.Rows.Add(row)
Next i
End Sub

Private Sub MakeChildTable()
' Create a new DataTable.

Dim table As DataTable = New DataTable("childTable")
Dim column As DataColumn
Dim row As DataRow

' Create first column and add to the DataTable.

column = New DataColumn()
column.DataType= System.Type.GetType("System.Int32")
column.ColumnName = "ChildID"
column.AutoIncrement = True
column.Caption = "ID"
column.ReadOnly = True
column.Unique = True

' Add the column to the DataColumnCollection.

table.Columns.Add(column)

' Create second column.

column = New DataColumn()
column.DataType= System.Type.GetType("System.String")
column.ColumnName = "ChildItem"
column.AutoIncrement = False
column.Caption = "ChildItem"
column.ReadOnly = False
column.Unique = False
table.Columns.Add(column)

' Create third column.

column = New DataColumn()
column.DataType= System.Type.GetType("System.Int32")
column.ColumnName = "ParentID"
column.AutoIncrement = False
column.Caption = "ParentID"
column.ReadOnly = False
column.Unique = False
table.Columns.Add(column)

dataSet.Tables.Add(table)

' Create three sets of DataRow objects, five rows each,

' and add to DataTable.

Dim i As Integer
For i = 0 to 4
row = table.NewRow()
row("childID") = i
row("ChildItem") = "Item " + i.ToString()
row("ParentID") = 0
table.Rows.Add(row)
Next i
For i = 0 to 4
row = table.NewRow()
row("childID") = i + 5
row("ChildItem") = "Item " + i.ToString()
row("ParentID") = 1
table.Rows.Add(row)
Next i
For i = 0 to 4
row = table.NewRow()
row("childID") = i + 10
row("ChildItem") = "Item " + i.ToString()
row("ParentID") = 2
table.Rows.Add(row)
Next i
End Sub

Private Sub MakeDataRelation()
' DataRelation requires two DataColumn

' (parent and child) and a name.

Dim parentColumn As DataColumn = _
dataSet.Tables("ParentTable").Columns("id")
Dim childColumn As DataColumn = _
dataSet.Tables("ChildTable").Columns("ParentID")
Dim relation As DataRelation = new _
DataRelation("parent2Child", parentColumn, childColumn)
dataSet.Tables("ChildTable").ParentRelations.Add(relation)
End Sub

Private Sub BindToDataGrid()
' Instruct the DataGrid to bind to the DataSet, with the

' ParentTable as the topmost DataTable.

DataGrid1.SetDataBinding(dataSet,"ParentTable")
End Sub











( creazionedatatable.html )- by Paolo Puglisi - Modifica del 17/12/2023