VB.Net/GUI/DataRow

Материал из VB Эксперт
Версия от 12:43, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

DataRow Collection View

  
Imports System.Windows.Forms
Public Class Form1
    Inherits System.Windows.Forms.Form
    Private dtSet As DataSet
    Private custTable As DataTable
    Friend WithEvents DataGrid1 As System.Windows.Forms.DataGrid
    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.ruponentModel.ISupportInitialize).BeginInit()
        Me.SuspendLayout()
        "
        Me.DataGrid1.DataMember = ""
        Me.DataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText
        Me.DataGrid1.Location = New System.Drawing.Point(8, 8)
        Me.DataGrid1.Name = "DataGrid1"
        Me.DataGrid1.Size = New System.Drawing.Size(320, 256)
        Me.DataGrid1.TabIndex = 0
        "
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(344, 273)
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.DataGrid1})
        CType(Me.DataGrid1, System.ruponentModel.ISupportInitialize).EndInit()
        Me.ResumeLayout(False)
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        custTable = New DataTable("Customers")
        Dim dtColumn As DataColumn
        Dim myDataRow As DataRow
        dtColumn = New DataColumn()
        dtColumn.DataType = System.Type.GetType("System.Int32")
        dtColumn.ColumnName = "id"
        dtColumn.Caption = "Cust ID"
        dtColumn.ReadOnly = False
        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
        dtSet = New DataSet("Customers")
        dtSet.Tables.Add(custTable)

        myDataRow = custTable.NewRow()
        myDataRow("id") = 1001
        myDataRow("Address") = "CA"
        myDataRow("Name") = "G"
        custTable.Rows.Add(myDataRow)
        myDataRow = custTable.NewRow()
        myDataRow("id") = 1002
        myDataRow("Name") = "R"
        myDataRow("Address") = "CA"
        custTable.Rows.Add(myDataRow)
        myDataRow = custTable.NewRow()
        myDataRow("id") = 1003
        myDataRow("Name") = "A"
        myDataRow("Address") = "CA"
        custTable.Rows.Add(myDataRow)
        Dim rows As DataRowCollection = custTable.Rows
        Dim counter As Integer
        counter = rows.Count
        Dim row As DataRow
        If rows.Contains(1002) Then
            row = rows.Find(1002)
            rows.Remove(row)
            MessageBox.Show("Row Removed")
        Else
            MessageBox.Show("Row not found")
        End If
        Dim newRow As DataRow
        newRow = custTable.NewRow()
        newRow("id") = 1005
        newRow("Address") = "New Address"
        newRow("Name") = "New Name"
        rows.InsertAt(newRow, 3)
        If (Not rows(1).IsNull("id")) Then
            rows.RemoveAt(1)
        End If
        MessageBox.Show(counter.ToString())
        DataGrid1.DataSource = dtSet.DefaultViewManager
    End Sub
End Class