Create primary key DataColumn
Imports System.Data
Imports System.Windows.Forms
Public Class Form1
Inherits System.Windows.Forms.Form
Public Shared Sub Main()
Application.Run(New Form1())
End Sub
Public Sub New()
MyBase.New()
Me.DataGrid1 = New System.Windows.Forms.DataGrid()
CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
Me.DataGrid1.DataMember = ""
Me.DataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText
Me.DataGrid1.Location = New System.Drawing.Point(0, 8)
Me.DataGrid1.Size = New System.Drawing.Size(432, 256)
Me.DataGrid1.TabIndex = 0
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(440, 273)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.DataGrid1})
CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CreateCustomersTable()
End Sub
Private Sub dcConstructorsTest()
Dim custTable As DataTable = New DataTable("Customers")
Dim dtSet As DataSet = New DataSet()
Dim myDataType As System.Type
myDataType = System.Type.GetType("System.Int32")
Dim priceCol As DataColumn = New DataColumn("Price", myDataType)
priceCol.Caption = "Price"
custTable.Columns.Add(priceCol)
Dim qtCol As DataColumn = New DataColumn()
qtCol.ColumnName = "Quantity"
qtCol.DataType = System.Type.GetType("System.Int32")
qtCol.Caption = "Quantity"
custTable.Columns.Add(qtCol)
Dim strExpr As String = "Price * Quantity"
Dim totCol As DataColumn = New DataColumn("Total", myDataType, strExpr, MappingType.Attribute)
totCol.Caption = "Total"
custTable.Columns.Add(totCol)
dtSet.Tables.Add(custTable)
DataGrid1.SetDataBinding(dtSet, "Customers")
End Sub
Private Sub CreateCustTable()
Dim custTable As DataTable = New DataTable("Customers")
Dim IdCol As DataColumn = New DataColumn()
IdCol.ColumnName = "ID"
IdCol.DataType = Type.GetType("System.Int32")
IdCol.ReadOnly = True
IdCol.AllowDBNull = False
IdCol.Unique = True
IdCol.AutoIncrement = True
IdCol.AutoIncrementSeed = 1
IdCol.AutoIncrementStep = 1
custTable.Columns.Add(IdCol)
Dim nameCol As DataColumn = New DataColumn()
nameCol.ColumnName = "Name"
nameCol.DataType = Type.GetType("System.String")
custTable.Columns.Add(nameCol)
Dim addCol As DataColumn = New DataColumn()
addCol.ColumnName = "Address"
addCol.DataType = Type.GetType("System.String")
custTable.Columns.Add(addCol)
Dim dobCol As DataColumn = New DataColumn()
dobCol.ColumnName = "DOB"
dobCol.DataType = Type.GetType("System.DateTime")
custTable.Columns.Add(dobCol)
Dim fullTimeCol As DataColumn = New DataColumn()
fullTimeCol.ColumnName = "VAR"
fullTimeCol.DataType = Type.GetType("System.Boolean")
custTable.Columns.Add(fullTimeCol)
Dim PrimaryKeyColumns() As DataColumn = New DataColumn(1) {}
PrimaryKeyColumns(0) = custTable.Columns("ID")
custTable.PrimaryKey = PrimaryKeyColumns
Dim ds As DataSet = New DataSet("Customers")
ds.Tables.Add(custTable)
dataGrid1.DataSource = ds.DefaultViewManager
End Sub
Private Sub CreateCustomersTable()
Dim custTable As System.Data.DataTable = New DataTable("Customers")
Dim dtColumn As DataColumn
dtColumn = New DataColumn()
dtColumn.DataType = System.Type.GetType("System.Int32")
dtColumn.ColumnName = "id"
dtColumn.Caption = "Cust ID"
dtColumn.ReadOnly = True
dtColumn.Unique = True
custTable.Columns.Add(dtColumn)
dtColumn = New DataColumn()
dtColumn.DataType = System.Type.GetType("System.String")
dtColumn.ColumnName = "Name"
dtColumn.Caption = "Cust Name"
dtColumn.AutoIncrement = False
dtColumn.ReadOnly = False
dtColumn.Unique = False
custTable.Columns.Add(dtColumn)
dtColumn = New DataColumn()
dtColumn.DataType = System.Type.GetType("System.String")
dtColumn.ColumnName = "Address"
dtColumn.Caption = "Address"
dtColumn.ReadOnly = False
dtColumn.Unique = False
custTable.Columns.Add(dtColumn)
Dim PrimaryKeyColumns() As DataColumn = New DataColumn(1) {}
PrimaryKeyColumns(0) = custTable.Columns("id")
custTable.PrimaryKey = PrimaryKeyColumns
Dim ds As DataSet = New DataSet("Customers")
ds.Tables.Add(custTable)
Dim row1 As DataRow = custTable.NewRow()
row1("id") = 1001
row1("Address") = "CA"
row1("Name") = "A"
custTable.Rows.Add(row1)
Dim row2 As DataRow = custTable.NewRow()
row2("id") = 1002
row2("Name") = "R"
row2("Address") = "CA"
custTable.Rows.Add(row2)
Dim row3 As DataRow = custTable.NewRow()
row3("id") = 1003
row3("Name") = "M "
row3("Address") = "CA"
custTable.Rows.Add(row3)
MessageBox.Show(row2.RowState.ToString())
row2.Delete()
MessageBox.Show(row3.RowState.ToString())
DataGrid1.DataSource = ds.DefaultViewManager
End Sub
Friend WithEvents DataGrid1 As System.Windows.Forms.DataGrid
End Class
Related examples in the same category