0% found this document useful (0 votes)
86 views54 pages

Connection

The document provides code examples for connecting to and querying databases using OleDbConnection in Visual Basic. It includes examples connecting to Access and SQL Server databases, executing queries to retrieve data, and binding query results to controls. The code discusses creating OleDbConnections, executing commands and readers, and binding DataTables to Windows forms controls.

Uploaded by

Suresh Sharma
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
86 views54 pages

Connection

The document provides code examples for connecting to and querying databases using OleDbConnection in Visual Basic. It includes examples connecting to Access and SQL Server databases, executing queries to retrieve data, and binding query results to controls. The code discusses creating OleDbConnections, executing commands and readers, and binding DataTables to Windows forms controls.

Uploaded by

Suresh Sharma
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 54

24. 9. 2.

Create OleDbConnection to Access database

Imports System.Data Module Test Sub Main() Dim sConnectionString, sSQL As String

'SQL Connection String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\yourdatabase.mdb" sSQL = "SELECT Title FROM yourTable" Dim conn As New System.Data.OleDb.OleDbConnection(sConnectionString) Dim cmd As New System.Data.OleDb.OleDbCommand(sSQL, conn) Dim dr As System.Data.OleDb.OleDbDataReader conn.Open() dr = cmd.ExecuteReader() Do While dr.Read() System.Console.WriteLine(dr.Item("Title")) Loop dr.Close() conn.Close() End Sub End Module

24. 9. 3. Using sql statement

Option Strict On Imports System.Data Imports System.Data.OleDb

Public Module UsingStatement Public Sub Main() Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=NorthWin Dim cmd As New OleDbCommand Dim dr As OleDbDataReader Using conn conn.Open cmd.CommandText = "Select * From Customers" cmd.CommandType = CommandType.Text cmd.Connection = conn

dr = cmd.ExecuteReader() If dr.HasRows Then Do While dr.Read() ' Get first and last name of customer Console.WriteLine(CStr(dr.Item(1)) & " " & CStr(dr.Item(2))) Loop Else Console.WriteLine("The table has no rows.") End If End Using End Sub End Module

24. 9. 1. Create OleDbConnection to Sql server

Imports System.Data Module Test Sub Main() Dim sConnectionString, sSQL As String 'SQL Connection String sConnectionString = "Provider=SQLOLEDB.1;User ID=sa;Initial Catalog=YourDataBase;Data sSQL = "SELECT Title FROM yourTable" Dim conn As New System.Data.OleDb.OleDbConnection(sConnectionString) Dim cmd As New System.Data.OleDb.OleDbCommand(sSQL, conn) Dim dr As System.Data.OleDb.OleDbDataReader conn.Open() dr = cmd.ExecuteReader() Do While dr.Read() System.Console.WriteLine(dr.Item("Title")) Loop dr.Close() conn.Close() End Sub End Module

24. 2. 1. Data binding

Public Class Form2 Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code " Public Sub New() MyBase.New() 'This call is required by the Windows Form Designer. InitializeComponent() 'Add any initialization after the InitializeComponent() call End Sub 'Form overrides dispose to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.Container Private WithEvents textBox1 As System.Windows.Forms.TextBox Private WithEvents button1 As System.Windows.Forms.Button 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.textBox1 = New System.Windows.Forms.TextBox() Me.button1 = New System.Windows.Forms.Button() Me.SuspendLayout() ' 'textBox1 ' Me.textBox1.Location = New System.Drawing.Point(48, 56) Me.textBox1.Name = "textBox1" Me.textBox1.TabIndex = 0 Me.textBox1.Text = "textBox1" ' 'button1 ' Me.button1.Location = New System.Drawing.Point(56, 96) Me.button1.Name = "button1" Me.button1.TabIndex = 1 Me.button1.Text = "button1" ' 'Form2 ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(292, 273) Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.button1, Me.textBox1}) Me.Name = "Form2" Me.Text = "Form1" Me.ResumeLayout(False) End Sub

#End Region

Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles b Dim sConnection As String = _ "Provider=SQLOLEDB.1;" & _ "Password=sqlpassword;" & _ "Persist Security Info=True;" & _ "User ID=sa;" & _ "Initial Catalog=CD;" & _ "Data Source=(local)" Dim sSQL As String sSQL = "SELECT ArtistID, ArtistName From Artist" Dim objConn _ As New OleDb.OleDbConnection(sConnection) Dim objDataAdapter _ As New OleDb.OleDbDataAdapter(sSQL, objConn) Dim objDS _ As New DataSet("Artists") Dim objDV _ As DataView Try objConn.Open() Catch myException As System.Exception Windows.Forms.MessageBox.Show(myException.Message) End Try If objConn.State = ConnectionState.Open Then Try objDataAdapter.Fill(objDS, "Disc") objConn.Close() Dim objTable As DataTable objTable = objDS.Tables("Disc") objDV = objTable.DefaultView textBox1.DataBindings.Add("Text", objDV, "ArtistName") Catch myexception As Exception Windows.Forms.MessageBox.Show(myException.Message) End Try End If End Sub End Class

24. 2. 2. Bind DataTable to Control

Imports System.Data Imports System.Data.OleDb Imports System.Windows.Forms public class BindDataTableToControl public Shared Sub Main Application.Run(New Form1) End Sub End class

Public Class Form1 ' The data source. Private m_ContactsTable As DataTable ' The data source's CurrencyManager. Private m_CurrencyManager As CurrencyManager Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' Make a DataTable. m_ContactsTable = New DataTable("Contacts") ' Add columns. m_ContactsTable.Columns.Add("FirstName", GetType(String)) m_ContactsTable.Columns.Add("LastName", GetType(String)) m_ContactsTable.Columns.Add("Street", GetType(String)) m_ContactsTable.Columns.Add("City", GetType(String)) m_ContactsTable.Columns.Add("State", GetType(String)) m_ContactsTable.Columns.Add("Zip", GetType(String)) ' Make the combined FirstName/LastName unique. Dim first_last_columns() As DataColumn = { _ m_ContactsTable.Columns("FirstName"), _ m_ContactsTable.Columns("LastName") _ } m_ContactsTable.Constraints.Add( _ New UniqueConstraint(first_last_columns)) ' Make some contact data. m_ContactsTable.Rows.Add(New m_ContactsTable.Rows.Add(New m_ContactsTable.Rows.Add(New m_ContactsTable.Rows.Add(New Object() Object() Object() Object() {"A", {"F", {"K", {"P", "B","C", "G","H", "L","M", "Q","R", "D", "I", "N", "S", "E", "J", "O", "T", "11111"}) "22222"}) "33333"}) "44444"})

m_ContactsTable.Rows.Add(New m_ContactsTable.Rows.Add(New m_ContactsTable.Rows.Add(New m_ContactsTable.Rows.Add(New

Object() Object() Object() Object()

{"U", {"Z", {"E", {"J",

"V","W", "A","B", "F","G", "K","L",

"X", "C", "H", "M",

"Y", "D", "I", "N",

"55555"}) "66666"}) "77777"}) "88888"})

' Bind to controls. txtFirstName.DataBindings.Add("Text", m_ContactsTable, "FirstName") txtLastName.DataBindings.Add("Text", m_ContactsTable, "LastName") txtStreet.DataBindings.Add("Text", m_ContactsTable, "Street") txtCity.DataBindings.Add("Text", m_ContactsTable, "City") txtState.DataBindings.Add("Text", m_ContactsTable, "State") txtZip.DataBindings.Add("Text", m_ContactsTable, "Zip") ' Save a reference to the CurrencyManager. m_CurrencyManager = _ DirectCast(Me.BindingContext(m_ContactsTable), CurrencyManager) End Sub Private Sub btnFirst_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnFirst.Click m_CurrencyManager.Position = 0 End Sub Private Sub btnPrev_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnPrev.Click m_CurrencyManager.Position -= 1 End Sub Private Sub btnNext_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnNext.Click m_CurrencyManager.Position += 1 End Sub Private Sub btnLast_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnLast.Click m_CurrencyManager.Position = m_CurrencyManager.Count - 1 End Sub ' Add a new record. Private Sub btnAdd_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnAdd.Click m_CurrencyManager.AddNew() End Sub Private Sub btnDelete_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnDelete.Click If MsgBox("Are you sure you want to delete this record?", _ MsgBoxStyle.Question Or MsgBoxStyle.YesNo, _ "Confirm Delete?") = MsgBoxResult.Yes _ Then m_CurrencyManager.RemoveAt(m_CurrencyManager.Position) End If End Sub End Class <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Public Class Form1 Inherits System.Windows.Forms.Form 'Form overrides dispose to clean up the component list. <System.Diagnostics.DebuggerNonUserCode()> _

Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing AndAlso components IsNot Nothing Then components.Dispose() End If MyBase.Dispose(disposing) End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Me.Label6 = New System.Windows.Forms.Label Me.Label5 = New System.Windows.Forms.Label Me.Label4 = New System.Windows.Forms.Label Me.Label3 = New System.Windows.Forms.Label Me.Label2 = New System.Windows.Forms.Label Me.Label1 = New System.Windows.Forms.Label Me.btnDelete = New System.Windows.Forms.Button Me.btnAdd = New System.Windows.Forms.Button Me.btnLast = New System.Windows.Forms.Button Me.btnNext = New System.Windows.Forms.Button Me.btnPrev = New System.Windows.Forms.Button Me.btnFirst = New System.Windows.Forms.Button Me.txtZip = New System.Windows.Forms.TextBox Me.txtState = New System.Windows.Forms.TextBox Me.txtCity = New System.Windows.Forms.TextBox Me.txtStreet = New System.Windows.Forms.TextBox Me.txtLastName = New System.Windows.Forms.TextBox Me.txtFirstName = New System.Windows.Forms.TextBox Me.SuspendLayout() ' 'Label6 ' Me.Label6.AutoSize = True Me.Label6.Location = New System.Drawing.Point(176, 104) Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(22, 13) Me.Label6.TabIndex = 35 Me.Label6.Text = "Zip" ' 'Label5 ' Me.Label5.AutoSize = True Me.Label5.Location = New System.Drawing.Point(8, 104) Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(32, 13) Me.Label5.TabIndex = 34 Me.Label5.Text = "State" ' 'Label4 ' Me.Label4.AutoSize = True Me.Label4.Location = New System.Drawing.Point(8, 80) Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(24, 13) Me.Label4.TabIndex = 33

Me.Label4.Text = "City" ' 'Label3 ' Me.Label3.AutoSize = True Me.Label3.Location = New System.Drawing.Point(8, 56) Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(35, 13) Me.Label3.TabIndex = 32 Me.Label3.Text = "Street" ' 'Label2 ' Me.Label2.AutoSize = True Me.Label2.Location = New System.Drawing.Point(8, 32) Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(58, 13) Me.Label2.TabIndex = 31 Me.Label2.Text = "Last Name" ' 'Label1 ' Me.Label1.AutoSize = True Me.Label1.Location = New System.Drawing.Point(8, 8) Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(57, 13) Me.Label1.TabIndex = 30 Me.Label1.Text = "First Name" ' 'btnDelete ' Me.btnDelete.Location = New System.Drawing.Point(240, 144) Me.btnDelete.Name = "btnDelete" Me.btnDelete.Size = New System.Drawing.Size(32, 24) Me.btnDelete.TabIndex = 29 Me.btnDelete.Text = "X" ' 'btnAdd ' Me.btnAdd.Location = New System.Drawing.Point(200, 144) Me.btnAdd.Name = "btnAdd" Me.btnAdd.Size = New System.Drawing.Size(32, 24) Me.btnAdd.TabIndex = 28 Me.btnAdd.Text = "+" ' 'btnLast ' Me.btnLast.Location = New System.Drawing.Point(104, 144) Me.btnLast.Name = "btnLast" Me.btnLast.Size = New System.Drawing.Size(32, 24) Me.btnLast.TabIndex = 27 Me.btnLast.Text = ">>" ' 'btnNext ' Me.btnNext.Location = New System.Drawing.Point(72, 144) Me.btnNext.Name = "btnNext" Me.btnNext.Size = New System.Drawing.Size(32, 24) Me.btnNext.TabIndex = 26 Me.btnNext.Text = ">"

' 'btnPrev ' Me.btnPrev.Location = New System.Drawing.Point(40, 144) Me.btnPrev.Name = "btnPrev" Me.btnPrev.Size = New System.Drawing.Size(32, 24) Me.btnPrev.TabIndex = 25 Me.btnPrev.Text = "<" ' 'btnFirst ' Me.btnFirst.Location = New System.Drawing.Point(8, 144) Me.btnFirst.Name = "btnFirst" Me.btnFirst.Size = New System.Drawing.Size(32, 24) Me.btnFirst.TabIndex = 24 Me.btnFirst.Text = "<<" ' 'txtZip ' Me.txtZip.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.F Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.Anchor Me.txtZip.Location = New System.Drawing.Point(200, 104) Me.txtZip.Name = "txtZip" Me.txtZip.Size = New System.Drawing.Size(72, 20) Me.txtZip.TabIndex = 23 ' 'txtState ' Me.txtState.Location = New System.Drawing.Point(72, 104) Me.txtState.Name = "txtState" Me.txtState.Size = New System.Drawing.Size(32, 20) Me.txtState.TabIndex = 22 ' 'txtCity ' Me.txtCity.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows. Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.Anchor Me.txtCity.Location = New System.Drawing.Point(72, 80) Me.txtCity.Name = "txtCity" Me.txtCity.Size = New System.Drawing.Size(200, 20) Me.txtCity.TabIndex = 21 ' 'txtStreet ' Me.txtStreet.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Window Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.Anchor Me.txtStreet.Location = New System.Drawing.Point(72, 56) Me.txtStreet.Name = "txtStreet" Me.txtStreet.Size = New System.Drawing.Size(200, 20) Me.txtStreet.TabIndex = 20 ' 'txtLastName ' Me.txtLastName.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Wind Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.Anchor Me.txtLastName.Location = New System.Drawing.Point(72, 32) Me.txtLastName.Name = "txtLastName" Me.txtLastName.Size = New System.Drawing.Size(200, 20) Me.txtLastName.TabIndex = 19 '

'txtFirstName ' Me.txtFirstName.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Win Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.Anchor Me.txtFirstName.Location = New System.Drawing.Point(72, 8) Me.txtFirstName.Name = "txtFirstName" Me.txtFirstName.Size = New System.Drawing.Size(200, 20) Me.txtFirstName.TabIndex = 18 ' 'Form1 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(278, 175) Me.Controls.Add(Me.Label6) Me.Controls.Add(Me.Label5) Me.Controls.Add(Me.Label4) Me.Controls.Add(Me.Label3) Me.Controls.Add(Me.Label2) Me.Controls.Add(Me.Label1) Me.Controls.Add(Me.btnDelete) Me.Controls.Add(Me.btnAdd) Me.Controls.Add(Me.btnLast) Me.Controls.Add(Me.btnNext) Me.Controls.Add(Me.btnPrev) Me.Controls.Add(Me.btnFirst) Me.Controls.Add(Me.txtZip) Me.Controls.Add(Me.txtState) Me.Controls.Add(Me.txtCity) Me.Controls.Add(Me.txtStreet) Me.Controls.Add(Me.txtLastName) Me.Controls.Add(Me.txtFirstName) Me.Name = "Form1" Me.Text = "UseCurrencyManager" Me.ResumeLayout(False) Me.PerformLayout() End Sub Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents End Class Label6 As System.Windows.Forms.Label Label5 As System.Windows.Forms.Label Label4 As System.Windows.Forms.Label Label3 As System.Windows.Forms.Label Label2 As System.Windows.Forms.Label Label1 As System.Windows.Forms.Label btnDelete As System.Windows.Forms.Button btnAdd As System.Windows.Forms.Button btnLast As System.Windows.Forms.Button btnNext As System.Windows.Forms.Button btnPrev As System.Windows.Forms.Button btnFirst As System.Windows.Forms.Button txtZip As System.Windows.Forms.TextBox txtState As System.Windows.Forms.TextBox txtCity As System.Windows.Forms.TextBox txtStreet As System.Windows.Forms.TextBox txtLastName As System.Windows.Forms.TextBox txtFirstName As System.Windows.Forms.TextBox

24. 3. 1. Create DataTable and add to DataGrid

Imports System.Windows.Forms Imports System.Data Imports System.Data.OleDb public class CreateDataTableAndAddToDataGrid public Shared Sub Main Application.Run(New Form1) End Sub End class Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Dim contacts_table As New DataTable("Contacts") ' Add columns. contacts_table.Columns.Add("FirstName", GetType(String))

contacts_table.Columns.Add("LastName", GetType(String)) contacts_table.Columns.Add("Street", GetType(String)) contacts_table.Columns.Add("City", GetType(String)) contacts_table.Columns.Add("State", GetType(String)) contacts_table.Columns.Add("Zip", GetType(String)) ' Make some contact data. contacts_table.Rows.Add(New Object() "1234", "B", "A", "11111"}) contacts_table.Rows.Add(New Object() "22", "B", "C", "22222"}) contacts_table.Rows.Add(New Object() "3", "P", "K", "33333"}) contacts_table.Rows.Add(New Object() "4", "P", "KS", "44444"}) grdAll.DataSource = contacts_table grdAll.CaptionText = "All Records" End Sub End Class <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Public Class Form1 Inherits System.Windows.Forms.Form 'Form overrides dispose to clean up the component list. <System.Diagnostics.DebuggerNonUserCode()> _ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing AndAlso components IsNot Nothing Then components.Dispose() End If MyBase.Dispose(disposing) End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Me.SplitContainer1 = New System.Windows.Forms.SplitContainer Me.SplitContainer2 = New System.Windows.Forms.SplitContainer Me.grdAll = New System.Windows.Forms.DataGrid Me.grdCO = New System.Windows.Forms.DataGrid Me.grdName = New System.Windows.Forms.DataGrid Me.SplitContainer1.Panel1.SuspendLayout() Me.SplitContainer1.Panel2.SuspendLayout() Me.SplitContainer1.SuspendLayout() Me.SplitContainer2.Panel1.SuspendLayout() Me.SplitContainer2.Panel2.SuspendLayout() Me.SplitContainer2.SuspendLayout() CType(Me.grdAll, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.grdCO, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.grdName, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'SplitContainer1 {"A", "A", _ {"B", "B", _ {"C", "C", _ {"", "D", _

' Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill Me.SplitContainer1.Location = New System.Drawing.Point(0, 0) Me.SplitContainer1.Name = "SplitContainer1" Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal ' 'SplitContainer1.Panel1 ' Me.SplitContainer1.Panel1.Controls.Add(Me.grdAll) ' 'SplitContainer1.Panel2 ' Me.SplitContainer1.Panel2.Controls.Add(Me.SplitContainer2) Me.SplitContainer1.Size = New System.Drawing.Size(519, 485) Me.SplitContainer1.SplitterDistance = 180 Me.SplitContainer1.TabIndex = 2 Me.SplitContainer1.Text = "SplitContainer1" ' 'SplitContainer2 ' Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill Me.SplitContainer2.Location = New System.Drawing.Point(0, 0) Me.SplitContainer2.Name = "SplitContainer2" Me.SplitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal ' 'SplitContainer2.Panel1 ' Me.SplitContainer2.Panel1.Controls.Add(Me.grdCO) ' 'SplitContainer2.Panel2 ' Me.SplitContainer2.Panel2.Controls.Add(Me.grdName) Me.SplitContainer2.Size = New System.Drawing.Size(519, 301) Me.SplitContainer2.SplitterDistance = 173 Me.SplitContainer2.TabIndex = 0 Me.SplitContainer2.Text = "SplitContainer2" ' 'grdAll ' Me.grdAll.DataMember = "" Me.grdAll.Dock = System.Windows.Forms.DockStyle.Fill Me.grdAll.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.grdAll.Location = New System.Drawing.Point(0, 0) Me.grdAll.Name = "grdAll" Me.grdAll.Size = New System.Drawing.Size(519, 180) Me.grdAll.TabIndex = 0 ' 'grdCO ' Me.grdCO.DataMember = "" Me.grdCO.Dock = System.Windows.Forms.DockStyle.Fill Me.grdCO.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.grdCO.Location = New System.Drawing.Point(0, 0) Me.grdCO.Name = "grdCO" Me.grdCO.Size = New System.Drawing.Size(519, 173) Me.grdCO.TabIndex = 1 ' 'grdName ' Me.grdName.DataMember = ""

Me.grdName.Dock = System.Windows.Forms.DockStyle.Fill Me.grdName.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.grdName.Location = New System.Drawing.Point(0, 0) Me.grdName.Name = "grdName" Me.grdName.Size = New System.Drawing.Size(519, 124) Me.grdName.TabIndex = 1 ' 'Form1 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(519, 485) Me.Controls.Add(Me.SplitContainer1) Me.Name = "Form1" Me.Text = "Contacts" Me.SplitContainer1.Panel1.ResumeLayout(False) Me.SplitContainer1.Panel2.ResumeLayout(False) Me.SplitContainer1.ResumeLayout(False) Me.SplitContainer2.Panel1.ResumeLayout(False) Me.SplitContainer2.Panel2.ResumeLayout(False) Me.SplitContainer2.ResumeLayout(False) CType(Me.grdAll, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.grdCO, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.grdName, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) End Sub Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents End Class SplitContainer1 As System.Windows.Forms.SplitContainer grdAll As System.Windows.Forms.DataGrid SplitContainer2 As System.Windows.Forms.SplitContainer grdCO As System.Windows.Forms.DataGrid grdName As System.Windows.Forms.DataGrid

24. 3. 2. Add DataRow to DataGrid

24. 3. 3. Make the combined FirstName/LastName unique

Imports System.Windows.Forms Imports System.Data Imports System.Data.OleDb public class CreateDataTableAndMakeCombinedColumnUnique public Shared Sub Main Application.Run(New Form1) End Sub End class Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Dim contacts_table As New DataTable("Contacts") ' Add columns. contacts_table.Columns.Add("FirstName", GetType(String)) contacts_table.Columns.Add("LastName", GetType(String)) contacts_table.Columns.Add("Street", GetType(String)) contacts_table.Columns.Add("City", GetType(String)) contacts_table.Columns.Add("State", GetType(String)) contacts_table.Columns.Add("Zip", GetType(String))

' Make the combined FirstName/LastName unique. Dim first_last_columns() As DataColumn = { _ contacts_table.Columns("FirstName"), _ contacts_table.Columns("LastName") _ } contacts_table.Constraints.Add( _ New UniqueConstraint(first_last_columns))

' Make some contact data. contacts_table.Rows.Add(New Object() "1234", "B", "A", "11111"}) contacts_table.Rows.Add(New Object() "22", "B", "C", "22222"}) contacts_table.Rows.Add(New Object() "3", "P", "K", "33333"}) contacts_table.Rows.Add(New Object() "4", "P", "KS", "44444"}) grdAll.DataSource = contacts_table grdAll.CaptionText = "All Records" End Sub End Class

{"A", "A", _ {"B", "B", _ {"C", "C", _ {"", "D", _

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Public Class Form1 Inherits System.Windows.Forms.Form 'Form overrides dispose to clean up the component list. <System.Diagnostics.DebuggerNonUserCode()> _ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing AndAlso components IsNot Nothing Then components.Dispose() End If MyBase.Dispose(disposing) End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Me.SplitContainer1 = New System.Windows.Forms.SplitContainer Me.SplitContainer2 = New System.Windows.Forms.SplitContainer Me.grdAll = New System.Windows.Forms.DataGrid Me.grdCO = New System.Windows.Forms.DataGrid Me.grdName = New System.Windows.Forms.DataGrid Me.SplitContainer1.Panel1.SuspendLayout() Me.SplitContainer1.Panel2.SuspendLayout() Me.SplitContainer1.SuspendLayout() Me.SplitContainer2.Panel1.SuspendLayout() Me.SplitContainer2.Panel2.SuspendLayout() Me.SplitContainer2.SuspendLayout() CType(Me.grdAll, System.ComponentModel.ISupportInitialize).BeginInit()

CType(Me.grdCO, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.grdName, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'SplitContainer1 ' Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill Me.SplitContainer1.Location = New System.Drawing.Point(0, 0) Me.SplitContainer1.Name = "SplitContainer1" Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal ' 'SplitContainer1.Panel1 ' Me.SplitContainer1.Panel1.Controls.Add(Me.grdAll) ' 'SplitContainer1.Panel2 ' Me.SplitContainer1.Panel2.Controls.Add(Me.SplitContainer2) Me.SplitContainer1.Size = New System.Drawing.Size(519, 485) Me.SplitContainer1.SplitterDistance = 180 Me.SplitContainer1.TabIndex = 2 Me.SplitContainer1.Text = "SplitContainer1" ' 'SplitContainer2 ' Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill Me.SplitContainer2.Location = New System.Drawing.Point(0, 0) Me.SplitContainer2.Name = "SplitContainer2" Me.SplitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal ' 'SplitContainer2.Panel1 ' Me.SplitContainer2.Panel1.Controls.Add(Me.grdCO) ' 'SplitContainer2.Panel2 ' Me.SplitContainer2.Panel2.Controls.Add(Me.grdName) Me.SplitContainer2.Size = New System.Drawing.Size(519, 301) Me.SplitContainer2.SplitterDistance = 173 Me.SplitContainer2.TabIndex = 0 Me.SplitContainer2.Text = "SplitContainer2" ' 'grdAll ' Me.grdAll.DataMember = "" Me.grdAll.Dock = System.Windows.Forms.DockStyle.Fill Me.grdAll.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.grdAll.Location = New System.Drawing.Point(0, 0) Me.grdAll.Name = "grdAll" Me.grdAll.Size = New System.Drawing.Size(519, 180) Me.grdAll.TabIndex = 0 ' 'grdCO ' Me.grdCO.DataMember = "" Me.grdCO.Dock = System.Windows.Forms.DockStyle.Fill Me.grdCO.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.grdCO.Location = New System.Drawing.Point(0, 0) Me.grdCO.Name = "grdCO" Me.grdCO.Size = New System.Drawing.Size(519, 173)

Me.grdCO.TabIndex = 1 ' 'grdName ' Me.grdName.DataMember = "" Me.grdName.Dock = System.Windows.Forms.DockStyle.Fill Me.grdName.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.grdName.Location = New System.Drawing.Point(0, 0) Me.grdName.Name = "grdName" Me.grdName.Size = New System.Drawing.Size(519, 124) Me.grdName.TabIndex = 1 ' 'Form1 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(519, 485) Me.Controls.Add(Me.SplitContainer1) Me.Name = "Form1" Me.Text = "Contacts" Me.SplitContainer1.Panel1.ResumeLayout(False) Me.SplitContainer1.Panel2.ResumeLayout(False) Me.SplitContainer1.ResumeLayout(False) Me.SplitContainer2.Panel1.ResumeLayout(False) Me.SplitContainer2.Panel2.ResumeLayout(False) Me.SplitContainer2.ResumeLayout(False) CType(Me.grdAll, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.grdCO, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.grdName, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) End Sub Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents End Class SplitContainer1 As System.Windows.Forms.SplitContainer grdAll As System.Windows.Forms.DataGrid SplitContainer2 As System.Windows.Forms.SplitContainer grdCO As System.Windows.Forms.DataGrid grdName As System.Windows.Forms.DataGrid

Imports Imports Imports Imports

System System.Data System.Data.SqlClient System.Windows.Forms

public class DataBinding public Shared Sub Main Application.Run(New Form1) End Sub End class Public Class Form1 Inherits System.Windows.Forms.Form Public Sub New() MyBase.New() InitializeComponent() End Sub Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub Private components As System.ComponentModel.IContainer Friend Friend Friend Friend WithEvents WithEvents WithEvents WithEvents DataSet1 As System.Data.DataSet DataTable1 As System.Data.DataTable DataColumn1 As System.Data.DataColumn DataColumn2 As System.Data.DataColumn

Friend WithEvents DataColumn3 As System.Data.DataColumn Friend WithEvents DataColumn4 As System.Data.DataColumn Friend WithEvents DataColumn5 As System.Data.DataColumn Friend WithEvents DataColumn6 As System.Data.DataColumn Friend WithEvents DataGrid1 As System.Windows.Forms.DataGrid Friend WithEvents Label1 As System.Windows.Forms.Label Friend WithEvents TextBox1 As System.Windows.Forms.TextBox Friend WithEvents Label2 As System.Windows.Forms.Label Friend WithEvents TextBox2 As System.Windows.Forms.TextBox Friend WithEvents Label3 As System.Windows.Forms.Label Friend WithEvents TextBox3 As System.Windows.Forms.TextBox Friend WithEvents Label4 As System.Windows.Forms.Label Friend WithEvents TextBox4 As System.Windows.Forms.TextBox Friend WithEvents Label5 As System.Windows.Forms.Label Friend WithEvents TextBox5 As System.Windows.Forms.TextBox Friend WithEvents Label6 As System.Windows.Forms.Label Friend WithEvents TextBox6 As System.Windows.Forms.TextBox Friend WithEvents Button1 As System.Windows.Forms.Button Friend WithEvents Button2 As System.Windows.Forms.Button <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.DataSet1 = New System.Data.DataSet Me.DataTable1 = New System.Data.DataTable Me.DataColumn1 = New System.Data.DataColumn Me.DataColumn2 = New System.Data.DataColumn Me.DataColumn3 = New System.Data.DataColumn Me.DataColumn4 = New System.Data.DataColumn Me.DataColumn5 = New System.Data.DataColumn Me.DataColumn6 = New System.Data.DataColumn Me.DataGrid1 = New System.Windows.Forms.DataGrid Me.Label1 = New System.Windows.Forms.Label Me.TextBox1 = New System.Windows.Forms.TextBox Me.Label2 = New System.Windows.Forms.Label Me.TextBox2 = New System.Windows.Forms.TextBox Me.Label3 = New System.Windows.Forms.Label Me.TextBox3 = New System.Windows.Forms.TextBox Me.Label4 = New System.Windows.Forms.Label Me.TextBox4 = New System.Windows.Forms.TextBox Me.Label5 = New System.Windows.Forms.Label Me.TextBox5 = New System.Windows.Forms.TextBox Me.Label6 = New System.Windows.Forms.Label Me.TextBox6 = New System.Windows.Forms.TextBox Me.Button1 = New System.Windows.Forms.Button Me.Button2 = New System.Windows.Forms.Button CType(Me.DataSet1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.DataTable1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'DataSet1 ' Me.DataSet1.DataSetName = "NewDataSet" Me.DataSet1.Locale = New System.Globalization.CultureInfo("zh-CN") Me.DataSet1.Tables.AddRange(New System.Data.DataTable() {Me.DataTable1}) ' 'DataTable1 ' Me.DataTable1.Columns.AddRange(New System.Data.DataColumn() {Me.DataColumn1, Me.Data Me.DataTable1.TableName = "Table1" ' 'DataColumn1

' Me.DataColumn1.Caption = "A" Me.DataColumn1.ColumnName = "A" ' 'DataColumn2 ' Me.DataColumn2.ColumnName = "B" Me.DataColumn2.DataType = GetType(System.Int32) ' 'DataColumn3 ' Me.DataColumn3.Caption = "C" Me.DataColumn3.ColumnName = "C" Me.DataColumn3.DataType = GetType(System.Int32) ' 'DataColumn4 ' Me.DataColumn4.ColumnName = "D" Me.DataColumn4.DataType = GetType(System.Int32) ' 'DataColumn5 ' Me.DataColumn5.ColumnName = "E" Me.DataColumn5.DataType = GetType(System.Int32) ' 'DataColumn6 ' Me.DataColumn6.ColumnName = "F" ' 'DataGrid1 ' Me.DataGrid1.DataMember = "" Me.DataGrid1.DataSource = Me.DataTable1 Me.DataGrid1.Dock = System.Windows.Forms.DockStyle.Top Me.DataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.DataGrid1.Location = New System.Drawing.Point(0, 0) Me.DataGrid1.Name = "DataGrid1" Me.DataGrid1.Size = New System.Drawing.Size(488, 216) Me.DataGrid1.TabIndex = 0 ' 'Label1 ' Me.Label1.Location = New System.Drawing.Point(24, 224) Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(48, 24) Me.Label1.TabIndex = 1 Me.Label1.Text = "A" ' 'TextBox1 ' Me.TextBox1.Location = New System.Drawing.Point(64, 224) Me.TextBox1.Name = "TextBox1" Me.TextBox1.Size = New System.Drawing.Size(64, 20) Me.TextBox1.TabIndex = 2 Me.TextBox1.Text = "" ' 'Label2 ' Me.Label2.Location = New System.Drawing.Point(168, 224) Me.Label2.Name = "Label2"

Me.Label2.Size = New System.Drawing.Size(48, 24) Me.Label2.TabIndex = 3 Me.Label2.Text = "B" ' 'TextBox2 ' Me.TextBox2.Location = New System.Drawing.Point(216, 224) Me.TextBox2.Name = "TextBox2" Me.TextBox2.Size = New System.Drawing.Size(72, 20) Me.TextBox2.TabIndex = 4 Me.TextBox2.Text = "" ' 'Label3 ' Me.Label3.Location = New System.Drawing.Point(24, 256) Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(48, 24) Me.Label3.TabIndex = 5 Me.Label3.Text = "C" ' 'TextBox3 ' Me.TextBox3.Location = New System.Drawing.Point(64, 256) Me.TextBox3.Name = "TextBox3" Me.TextBox3.Size = New System.Drawing.Size(64, 20) Me.TextBox3.TabIndex = 6 Me.TextBox3.Text = "" ' 'Label4 ' Me.Label4.Location = New System.Drawing.Point(168, 256) Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(48, 24) Me.Label4.TabIndex = 7 Me.Label4.Text = "D" ' 'TextBox4 ' Me.TextBox4.Location = New System.Drawing.Point(216, 256) Me.TextBox4.Name = "TextBox4" Me.TextBox4.Size = New System.Drawing.Size(72, 20) Me.TextBox4.TabIndex = 8 Me.TextBox4.Text = "" ' 'Label5 ' Me.Label5.Location = New System.Drawing.Point(24, 288) Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(48, 24) Me.Label5.TabIndex = 9 Me.Label5.Text = "E" ' 'TextBox5 ' Me.TextBox5.Location = New System.Drawing.Point(64, 288) Me.TextBox5.Name = "TextBox5" Me.TextBox5.Size = New System.Drawing.Size(64, 20) Me.TextBox5.TabIndex = 10 Me.TextBox5.Text = "" '

'Label6 ' Me.Label6.Location = New System.Drawing.Point(144, 288) Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(80, 24) Me.Label6.TabIndex = 11 Me.Label6.Text = "F" ' 'TextBox6 ' Me.TextBox6.Location = New System.Drawing.Point(216, 288) Me.TextBox6.Name = "TextBox6" Me.TextBox6.Size = New System.Drawing.Size(72, 20) Me.TextBox6.TabIndex = 12 Me.TextBox6.Text = "" ' 'Button1 ' Me.Button1.Location = New System.Drawing.Point(328, 224) Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(72, 24) Me.Button1.TabIndex = 13 Me.Button1.Text = "Display" ' 'Button2 ' Me.Button2.Location = New System.Drawing.Point(328, 264) Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(72, 24) Me.Button2.TabIndex = 14 Me.Button2.Text = "Add" ' 'Form1 ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(488, 318) Me.Controls.Add(Me.Button2) Me.Controls.Add(Me.Button1) Me.Controls.Add(Me.TextBox6) Me.Controls.Add(Me.Label6) Me.Controls.Add(Me.TextBox5) Me.Controls.Add(Me.Label5) Me.Controls.Add(Me.TextBox4) Me.Controls.Add(Me.Label4) Me.Controls.Add(Me.TextBox3) Me.Controls.Add(Me.Label3) Me.Controls.Add(Me.TextBox2) Me.Controls.Add(Me.Label2) Me.Controls.Add(Me.TextBox1) Me.Controls.Add(Me.Label1) Me.Controls.Add(Me.DataGrid1) CType(Me.DataSet1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.DataTable1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Ha Dim row1 As DataRow

row1 = DataTable1.NewRow row1("A") = "Tom" row1("B") = 121 row1("C") = 145 row1("D") = 134 row1("E") = 127 row1("F") = "032158" DataTable1.Rows.Add(row1) row1 = DataTable1.NewRow row1("A") = "John" row1("B") = 95 row1("C") = 102 row1("D") = 94 row1("E") = 85 row1("F") = "032176" DataTable1.Rows.Add(row1) row1 = DataTable1.NewRow row1("A") = "Alice" row1("B") = 137 row1("C") = 96 row1("D") = 125 row1("E") = 94 row1("F") = "032152" DataTable1.Rows.Add(row1) row1 = DataTable1.NewRow row1("A") = "Jack" row1("B") = 98 row1("C") = 134 row1("D") = 87 row1("E") = 124 row1("F") = "032156" DataTable1.Rows.Add(row1) End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Ha Dim row1 As DataRow row1 = DataTable1.NewRow row1("A") = TextBox1.Text row1("B") = 123 row1("C") = 123 row1("D") = 123 row1("E") = 123 row1("F") = TextBox6.Text DataTable1.Rows.Add(row1) DataTable1.AcceptChanges() End Sub End Class

24. 3. 4. Use DataView to filter data table

Imports System.Windows.Forms Imports System.Data Imports System.Data.OleDb public class CreateDataTableAndFilteredByDataView public Shared Sub Main Application.Run(New Form1) End Sub End class Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Dim contacts_table As New DataTable("Contacts") ' Add columns. contacts_table.Columns.Add("FirstName", GetType(String)) contacts_table.Columns.Add("LastName", GetType(String)) contacts_table.Columns.Add("Street", GetType(String)) contacts_table.Columns.Add("City", GetType(String)) contacts_table.Columns.Add("State", GetType(String)) contacts_table.Columns.Add("Zip", GetType(String))

contacts_table.Rows.Add(New Object() "1234", "B", "A", "11111"}) contacts_table.Rows.Add(New Object() "22", "B", "C", "22222"}) contacts_table.Rows.Add(New Object() "3", "P", "K", "33333"}) contacts_table.Rows.Add(New Object() "4", "P", "KS", "44444"}) grdAll.DataSource = contacts_table grdAll.CaptionText = "All Records"

{"A", "A", _ {"B", "B", _ {"C", "C", _ {"", "D", _

Dim dv_co As New DataView(contacts_table) dv_co.RowFilter = "State = 'C'" grdCO.DataSource = dv_co grdCO.CaptionText = "CO Records"

End Sub End Class <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Public Class Form1 Inherits System.Windows.Forms.Form 'Form overrides dispose to clean up the component list. <System.Diagnostics.DebuggerNonUserCode()> _ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing AndAlso components IsNot Nothing Then components.Dispose() End If MyBase.Dispose(disposing) End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Me.SplitContainer1 = New System.Windows.Forms.SplitContainer Me.SplitContainer2 = New System.Windows.Forms.SplitContainer Me.grdAll = New System.Windows.Forms.DataGrid Me.grdCO = New System.Windows.Forms.DataGrid Me.grdName = New System.Windows.Forms.DataGrid Me.SplitContainer1.Panel1.SuspendLayout() Me.SplitContainer1.Panel2.SuspendLayout() Me.SplitContainer1.SuspendLayout() Me.SplitContainer2.Panel1.SuspendLayout() Me.SplitContainer2.Panel2.SuspendLayout() Me.SplitContainer2.SuspendLayout() CType(Me.grdAll, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.grdCO, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.grdName, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'SplitContainer1

' Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill Me.SplitContainer1.Location = New System.Drawing.Point(0, 0) Me.SplitContainer1.Name = "SplitContainer1" Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal ' 'SplitContainer1.Panel1 ' Me.SplitContainer1.Panel1.Controls.Add(Me.grdAll) ' 'SplitContainer1.Panel2 ' Me.SplitContainer1.Panel2.Controls.Add(Me.SplitContainer2) Me.SplitContainer1.Size = New System.Drawing.Size(519, 485) Me.SplitContainer1.SplitterDistance = 180 Me.SplitContainer1.TabIndex = 2 Me.SplitContainer1.Text = "SplitContainer1" ' 'SplitContainer2 ' Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill Me.SplitContainer2.Location = New System.Drawing.Point(0, 0) Me.SplitContainer2.Name = "SplitContainer2" Me.SplitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal ' 'SplitContainer2.Panel1 ' Me.SplitContainer2.Panel1.Controls.Add(Me.grdCO) ' 'SplitContainer2.Panel2 ' Me.SplitContainer2.Panel2.Controls.Add(Me.grdName) Me.SplitContainer2.Size = New System.Drawing.Size(519, 301) Me.SplitContainer2.SplitterDistance = 173 Me.SplitContainer2.TabIndex = 0 Me.SplitContainer2.Text = "SplitContainer2" ' 'grdAll ' Me.grdAll.DataMember = "" Me.grdAll.Dock = System.Windows.Forms.DockStyle.Fill Me.grdAll.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.grdAll.Location = New System.Drawing.Point(0, 0) Me.grdAll.Name = "grdAll" Me.grdAll.Size = New System.Drawing.Size(519, 180) Me.grdAll.TabIndex = 0 ' 'grdCO ' Me.grdCO.DataMember = "" Me.grdCO.Dock = System.Windows.Forms.DockStyle.Fill Me.grdCO.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.grdCO.Location = New System.Drawing.Point(0, 0) Me.grdCO.Name = "grdCO" Me.grdCO.Size = New System.Drawing.Size(519, 173) Me.grdCO.TabIndex = 1 ' 'grdName ' Me.grdName.DataMember = ""

Me.grdName.Dock = System.Windows.Forms.DockStyle.Fill Me.grdName.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.grdName.Location = New System.Drawing.Point(0, 0) Me.grdName.Name = "grdName" Me.grdName.Size = New System.Drawing.Size(519, 124) Me.grdName.TabIndex = 1 ' 'Form1 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(519, 485) Me.Controls.Add(Me.SplitContainer1) Me.Name = "Form1" Me.Text = "Contacts" Me.SplitContainer1.Panel1.ResumeLayout(False) Me.SplitContainer1.Panel2.ResumeLayout(False) Me.SplitContainer1.ResumeLayout(False) Me.SplitContainer2.Panel1.ResumeLayout(False) Me.SplitContainer2.Panel2.ResumeLayout(False) Me.SplitContainer2.ResumeLayout(False) CType(Me.grdAll, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.grdCO, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.grdName, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) End Sub Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents End Class SplitContainer1 As System.Windows.Forms.SplitContainer grdAll As System.Windows.Forms.DataGrid SplitContainer2 As System.Windows.Forms.SplitContainer grdCO As System.Windows.Forms.DataGrid grdName As System.Windows.Forms.DataGrid

24. 3. 5. Load XML data to DataGrid

Imports System.Data.SqlClient Imports System.Data Imports System.Windows.Forms public class XMLDataGrid public Shared Sub Main Application.Run(New Form1) End Sub End class Public Class Form1 Inherits System.Windows.Forms.Form #Region " Windows Form Designer generated code " Public Sub New() MyBase.New() 'This call is required by the Windows Form Designer.

InitializeComponent() 'Add any initialization after the InitializeComponent() call End Sub 'Form overrides dispose to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. Friend WithEvents DataGrid1 As System.Windows.Forms.DataGrid <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.DataGrid1 = New System.Windows.Forms.DataGrid() CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'DataGrid1 ' Me.DataGrid1.DataMember = "" Me.DataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.DataGrid1.Location = New System.Drawing.Point(16, 32) Me.DataGrid1.Name = "DataGrid1" Me.DataGrid1.Size = New System.Drawing.Size(664, 160) Me.DataGrid1.TabIndex = 0 ' 'Form1 ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(736, 273) Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.DataGrid1}) Me.Name = "Form1" Me.Text = "DataGrid Demo" CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) End Sub #End Region

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handl Dim DS As New DataSet() DS.ReadXml("Authors.XML") DataGrid1.CaptionText = "Book Information" DataGrid1.SetDataBinding(DS, "Table") End Sub

End Class

24. 3. 6. DataGrid with Error mark

Imports System.Data Imports System.Data.OleDb Imports System.Windows.Forms public class DataGridWithError public Shared Sub Main Application.Run(New Form1) End Sub End class Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Dim scores_dataset As New DataSet("Scores") Dim students_table As DataTable = scores_dataset.Tables.Add("Students") students_table.Columns.Add("FirstName", GetType(String)) students_table.Columns.Add("LastName", GetType(String)) students_table.Columns.Add("StudentId", GetType(Integer)) students_table.Columns("StudentId").Unique = True Dim first_last_columns() As DataColumn = { _ students_table.Columns("FirstName"), _ students_table.Columns("LastName") _ } students_table.Constraints.Add(New UniqueConstraint(first_last_columns))

Dim test_scores_table As DataTable = scores_dataset.Tables.Add("TestScores") test_scores_table.Columns.Add("StudentId", GetType(Integer)) test_scores_table.Columns.Add("TestNumber", GetType(Integer)) test_scores_table.Columns.Add("Score", GetType(Integer))

Dim studentid_testnumber_score_columns() As DataColumn = { _ test_scores_table.Columns("StudentId"),test_scores_table.Columns("TestNumber") _ } test_scores_table.Constraints.Add(New UniqueConstraint(studentid_testnumber_score_co

scores_dataset.Relations.Add("Student Test Scores",students_table.Columns("StudentId students_table.Rows.Add(New students_table.Rows.Add(New students_table.Rows.Add(New students_table.Rows.Add(New Object() Object() Object() Object() {"A", {"B", {"C", {"D", "A", "B", "C", "D", 1}) 2}) 3}) 4})

Dim score As New Random For id As Integer = 1 To 4 For test_num As Integer = 1 To 10 test_scores_table.Rows.Add( _ New Object() {id, test_num, score.Next(65, 100)}) Next test_num Next id students_table.Rows(1).SetColumnError(2, "Bad name format") students_table.Rows(2).RowError = "Missing registration" grdScores.DataSource = scores_dataset End Sub End Class <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Public Class Form1 Inherits System.Windows.Forms.Form 'Form overrides dispose to clean up the component list. <System.Diagnostics.DebuggerNonUserCode()> _ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing AndAlso components IsNot Nothing Then components.Dispose() End If MyBase.Dispose(disposing) End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Me.grdScores = New System.Windows.Forms.DataGrid CType(Me.grdScores, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'grdScores

' Me.grdScores.DataMember = "" Me.grdScores.Dock = System.Windows.Forms.DockStyle.Fill Me.grdScores.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.grdScores.Location = New System.Drawing.Point(0, 0) Me.grdScores.Name = "grdScores" Me.grdScores.Size = New System.Drawing.Size(292, 273) Me.grdScores.TabIndex = 1 ' 'Form1 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(292, 273) Me.Controls.Add(Me.grdScores) Me.Name = "Form1" Me.Text = "MemoryDataSetWithError" CType(Me.grdScores, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) End Sub Friend WithEvents grdScores As System.Windows.Forms.DataGrid End Class

24. 3. 7. DataGrid: DataSet Relation

Imports System.Data Imports System.Data.OleDb Imports System.Windows.Forms

public class DataSetWithRelation public Shared Sub Main Application.Run(New Form1) End Sub End class Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Dim scores_dataset As New DataSet("Scores") Dim students_table As DataTable = scores_dataset.Tables.Add("Students") students_table.Columns.Add("FirstName", GetType(String)) students_table.Columns.Add("LastName", GetType(String)) students_table.Columns.Add("StudentId", GetType(Integer)) students_table.Columns("StudentId").Unique = True Dim first_last_columns() As DataColumn = { _ students_table.Columns("FirstName"), _ students_table.Columns("LastName") _ } students_table.Constraints.Add(New UniqueConstraint(first_last_columns)) Dim test_scores_table As DataTable = scores_dataset.Tables.Add("TestScores") test_scores_table.Columns.Add("StudentId", GetType(Integer)) test_scores_table.Columns.Add("TestNumber", GetType(Integer)) test_scores_table.Columns.Add("Score", GetType(Integer))

Dim studentid_testnumber_score_columns() As DataColumn = { _ test_scores_table.Columns("StudentId"),test_scores_table.Columns("TestNumber") _ } test_scores_table.Constraints.Add(New UniqueConstraint(studentid_testnumber_score_co

scores_dataset.Relations.Add("Student Test Scores",students_table.Columns("StudentId students_table.Rows.Add(New students_table.Rows.Add(New students_table.Rows.Add(New students_table.Rows.Add(New Object() Object() Object() Object() {"A", {"B", {"C", {"D", "A", "B", "C", "D", 1}) 2}) 3}) 4})

Dim score As New Random For id As Integer = 1 To 4 For test_num As Integer = 1 To 10 test_scores_table.Rows.Add( _ New Object() {id, test_num, score.Next(65, 100)}) Next test_num Next id students_table.Rows(1).SetColumnError(2, "Bad name format") students_table.Rows(2).RowError = "Missing registration" grdScores.DataSource = scores_dataset End Sub End Class

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Public Class Form1 Inherits System.Windows.Forms.Form 'Form overrides dispose to clean up the component list. <System.Diagnostics.DebuggerNonUserCode()> _ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing AndAlso components IsNot Nothing Then components.Dispose() End If MyBase.Dispose(disposing) End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Me.grdScores = New System.Windows.Forms.DataGrid CType(Me.grdScores, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'grdScores ' Me.grdScores.DataMember = "" Me.grdScores.Dock = System.Windows.Forms.DockStyle.Fill Me.grdScores.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.grdScores.Location = New System.Drawing.Point(0, 0) Me.grdScores.Name = "grdScores" Me.grdScores.Size = New System.Drawing.Size(292, 273) Me.grdScores.TabIndex = 1 ' 'Form1 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(292, 273) Me.Controls.Add(Me.grdScores) Me.Name = "Form1" Me.Text = "MemoryDataSetWithError" CType(Me.grdScores, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) End Sub Friend WithEvents grdScores As System.Windows.Forms.DataGrid End Class

24. 4. 1. Load data in Access to DataGridView

Imports System.Data.OleDb Imports System.Data Imports System.Windows.Forms public class LoadAccessDataToDataView public Shared Sub Main Application.Run(New Form1) End Sub End class Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Ha Dim ConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MyMDB.mdb" Dim SQLString As String = "SELECT * FROM TestDB" Dim OleDBConn1 As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbCon Dim DataSet1 As New DataSet() Dim OleDbDataAdapter1 As System.Data.OleDb.OleDbDataAdapter = New System.Data.OleDb. OleDBConn1.Open() OleDbDataAdapter1.Fill(DataSet1, "TestDB") DataGridView1.DataSource = DataSet1.Tables("TestDB") End Sub End Class <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Class Form1 Inherits System.Windows.Forms.Form 'Form overrides dispose to clean up the component list. <System.Diagnostics.DebuggerNonUserCode()> _ Protected Overrides Sub Dispose(ByVal disposing As Boolean) If disposing AndAlso components IsNot Nothing Then

components.Dispose() End If MyBase.Dispose(disposing) End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer

'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Me.Button1 = New System.Windows.Forms.Button Me.DataGridView1 = New System.Windows.Forms.DataGridView CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'Button1 ' Me.Button1.Location = New System.Drawing.Point(35, 289) Me.Button1.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(171, 29) Me.Button1.TabIndex = 0 Me.Button1.Text = "Read Access" Me.Button1.UseVisualStyleBackColor = True ' 'DataGridView1 ' Me.DataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColu Me.DataGridView1.Location = New System.Drawing.Point(16, 15) Me.DataGridView1.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.DataGridView1.Name = "DataGridView1" Me.DataGridView1.RowTemplate.Height = 23 Me.DataGridView1.Size = New System.Drawing.Size(503, 266) Me.DataGridView1.TabIndex = 1 ' 'Form1 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(8.0!, 15.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(535, 332) Me.Controls.Add(Me.DataGridView1) Me.Controls.Add(Me.Button1) Me.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) End Sub Friend WithEvents Button1 As System.Windows.Forms.Button Friend WithEvents DataGridView1 As System.Windows.Forms.DataGridView End Class

24. 4. 2. Read data in SqlServer to DataGridView

Imports System.Data.SqlClient Imports System.Data Imports System.Windows.Forms public class ReadDataFromSqlServer public Shared Sub Main Application.Run(New Form1) End Sub End class Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Ha ''Dim sConnString As String = "server=vs-lv;uid=sa;pwd=;database=Northwind" Dim ConnString As String = "Data Source=vs-lv;Initial Catalog=Northwind;Integrated S Dim SQLString As String = "SELECT * FROM Customers" Dim SqlDataAdapter1 As New SqlDataAdapter(SQLString, ConnString) Dim DataSet1 As New DataSet() SqlDataAdapter1.Fill(DataSet1, "Customers") DataGridView1.DataSource = DataSet1.Tables("Customers") End Sub End Class <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Class Form1 Inherits System.Windows.Forms.Form 'Form overrides dispose to clean up the component list. <System.Diagnostics.DebuggerNonUserCode()> _ Protected Overrides Sub Dispose(ByVal disposing As Boolean) If disposing AndAlso components IsNot Nothing Then components.Dispose() End If MyBase.Dispose(disposing) End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer

'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Me.Button1 = New System.Windows.Forms.Button Me.DataGridView1 = New System.Windows.Forms.DataGridView CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'Button1 ' Me.Button1.Location = New System.Drawing.Point(35, 289) Me.Button1.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(229, 29) Me.Button1.TabIndex = 0 Me.Button1.Text = "Read SQL Server 2000" Me.Button1.UseVisualStyleBackColor = True ' 'DataGridView1 ' Me.DataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColu Me.DataGridView1.Location = New System.Drawing.Point(16, 15) Me.DataGridView1.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.DataGridView1.Name = "DataGridView1" Me.DataGridView1.RowTemplate.Height = 23 Me.DataGridView1.Size = New System.Drawing.Size(503, 266) Me.DataGridView1.TabIndex = 1 ' 'Form1 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(8.0!, 15.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(535, 332) Me.Controls.Add(Me.DataGridView1) Me.Controls.Add(Me.Button1) Me.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.Name = "Form1" Me.Text = "Form1" CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) End Sub Friend WithEvents Button1 As System.Windows.Forms.Button Friend WithEvents DataGridView1 As System.Windows.Forms.DataGridView End Class

24. 5. 1. Load XML data to DataSet

Imports System.Data.SqlClient Imports System.Data Module Module1 Sub Main() Try Dim DS As New DataSet() DS.ReadXml("Authors.XML") Dim XMLContent As String = DS.GetXml() Dim I As Integer For I = 0 To DS.Tables(0).Rows.Count - 1 Console.WriteLine(DS.Tables(0).Rows(I).Item("Title")) Console.WriteLine(DS.Tables(0).Rows(I).Item("Author")) Console.WriteLine(DS.Tables(0).Rows(I).Item("Publisher")) Console.WriteLine(DS.Tables(0).Rows(I).Item("Price")) Next Catch Ex As Exception Console.WriteLine("Exception: " & Ex.Message) Console.WriteLine(Ex.ToString) End Try End Sub End Module

24. 5. 2. Save data in DataSet to xml file

Imports System.Data.SqlClient Imports System.Data Module Module1 Sub Main() Try Dim DS As New DataSet() DS.ReadXml("Authors.XML") Dim XMLContent As String = DS.GetXml()

Dim I As Integer

For I = 0 To DS.Tables(0).Rows.Count - 1 DS.Tables(0).Rows(I).Item("Author") = UCase(DS.Tables(0).Rows(I).Item("Autho Next For I = 0 To DS.Tables(0).Rows.Count - 1 Console.WriteLine(DS.Tables(0).Rows(I).Item("Title")) Console.WriteLine(DS.Tables(0).Rows(I).Item("Author")) Console.WriteLine(DS.Tables(0).Rows(I).Item("Publisher")) Console.WriteLine(DS.Tables(0).Rows(I).Item("Price")) Next DS.WriteXml("NewAuthors.xml") Console.ReadLine() Catch Ex As Exception Console.WriteLine("Exception: " & Ex.Message) Console.WriteLine(Ex.ToString) End Try End Sub End Module

24. 6. 1. Build up a DataSet

Imports System.Data.SqlClient Imports System.Data Module Module1 Sub Main() Try Dim DS As New DataSet() DS.ReadXml("Authors.XML") Dim XMLContent As String = DS.GetXml() Dim I As Integer

For I = 0 To DS.Tables(0).Rows.Count - 1 DS.Tables(0).Rows(I).Item("Author") = UCase(DS.Tables(0).Rows(I).Item("Autho Next For I = 0 To DS.Tables(0).Rows.Count - 1 Console.WriteLine(DS.Tables(0).Rows(I).Item("Title")) Console.WriteLine(DS.Tables(0).Rows(I).Item("Author")) Console.WriteLine(DS.Tables(0).Rows(I).Item("Publisher")) Console.WriteLine(DS.Tables(0).Rows(I).Item("Price")) Next

DS.WriteXml("NewAuthors.xml") Catch Ex As Exception Console.WriteLine("Exception: " & Ex.Message) Console.WriteLine(Ex.ToString) Console.ReadLine() End Try End Sub End Module

24. 7. 1. Output data in DataTable to XML file

Imports Imports Imports Imports

System.Data System.Data.OleDb System.IO System.Windows.Forms

public class DataTableToXML public Shared Sub Main Application.Run(New Form1) End Sub End class

Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Dim scores_dataset As New DataSet("Scores") Dim students_table As DataTable = scores_dataset.Tables.Add("Students") students_table.Columns.Add("FirstName", GetType(String)) students_table.Columns.Add("LastName", GetType(String))

students_table.Columns.Add("StudentId", GetType(Integer)) students_table.Columns("StudentId").Unique = True Dim first_last_columns() As DataColumn = { _ students_table.Columns("FirstName"), _ students_table.Columns("LastName") _ } students_table.Constraints.Add( _ New UniqueConstraint(first_last_columns)) ' Make the TestScores table. Dim test_scores_table As DataTable = _ scores_dataset.Tables.Add("TestScores") ' Add columns to the TestScores table. test_scores_table.Columns.Add("StudentId", GetType(Integer)) test_scores_table.Columns.Add("TestNumber", GetType(Integer)) test_scores_table.Columns.Add("Score", GetType(Integer)) ' Make the combined StudentId/TestNumber unique. Dim studentid_testnumber_score_columns() As DataColumn = { _ test_scores_table.Columns("StudentId"), _ test_scores_table.Columns("TestNumber") _ } test_scores_table.Constraints.Add( _ New UniqueConstraint(studentid_testnumber_score_columns)) ' Make a relationship linking the ' two tables' StudentId fields. scores_dataset.Relations.Add( _ "Student Test Scores", _ students_table.Columns("StudentId"), _ test_scores_table.Columns("StudentId")) ' Make some student data. students_table.Rows.Add(New students_table.Rows.Add(New students_table.Rows.Add(New students_table.Rows.Add(New Object() Object() Object() Object() {"A", {"B", {"C", {"D", "A", "B", "C", "D", 1}) 2}) 3}) 4})

' Make some random test scores. Dim score As New Random For id As Integer = 1 To 4 For test_num As Integer = 1 To 10 test_scores_table.Rows.Add( _ New Object() {id, test_num, score.Next(65, 100)}) Next test_num Next id students_table.Columns("FirstName").ColumnMapping = MappingType.Element students_table.Columns("LastName").ColumnMapping = MappingType.Element students_table.Columns("StudentId").ColumnMapping = MappingType.Attribute Dim string_writer As New StringWriter() students_table.WriteXml(string_writer) Console.WriteLine(string_writer) grdScores.DataSource = scores_dataset End Sub

End Class <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Public Class Form1 Inherits System.Windows.Forms.Form 'Form overrides dispose to clean up the component list. <System.Diagnostics.DebuggerNonUserCode()> _ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing AndAlso components IsNot Nothing Then components.Dispose() End If MyBase.Dispose(disposing) End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Me.grdScores = New System.Windows.Forms.DataGrid CType(Me.grdScores, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'grdScores ' Me.grdScores.DataMember = "" Me.grdScores.Dock = System.Windows.Forms.DockStyle.Fill Me.grdScores.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.grdScores.Location = New System.Drawing.Point(0, 0) Me.grdScores.Name = "grdScores" Me.grdScores.Size = New System.Drawing.Size(292, 273) Me.grdScores.TabIndex = 1 ' 'Form1 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(292, 273) Me.Controls.Add(Me.grdScores) Me.Name = "Form1" Me.Text = "MemoryDataSet" CType(Me.grdScores, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) End Sub Friend WithEvents grdScores As System.Windows.Forms.DataGrid End Class

24. 7. 2. Filter DataTable by a logic condition

Imports System.Windows.Forms Imports System.Data Imports System.Data.OleDb public class CreateDataTableAndFilteredByLogicCondition public Shared Sub Main Application.Run(New Form1) End Sub End class Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Dim contacts_table As New DataTable("Contacts") ' Add columns. contacts_table.Columns.Add("FirstName", GetType(String)) contacts_table.Columns.Add("LastName", GetType(String)) contacts_table.Columns.Add("Street", GetType(String)) contacts_table.Columns.Add("City", GetType(String)) contacts_table.Columns.Add("State", GetType(String)) contacts_table.Columns.Add("Zip", GetType(String))

contacts_table.Rows.Add(New Object() "1234", "B", "A", "11111"}) contacts_table.Rows.Add(New Object() "22", "B", "C", "22222"}) contacts_table.Rows.Add(New Object() "3", "P", "K", "33333"}) contacts_table.Rows.Add(New Object() "4", "P", "KS", "44444"}) grdAll.DataSource = contacts_table grdAll.CaptionText = "All Records"

{"A", "A", _ {"B", "B", _ {"C", "C", _ {"", "D", _

Dim dv_name As New DataView(contacts_table) dv_name.RowFilter = "FirstName >= 'A'" grdName.DataSource = dv_name grdName.CaptionText = "LastName >= E" End Sub End Class <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Public Class Form1 Inherits System.Windows.Forms.Form 'Form overrides dispose to clean up the component list. <System.Diagnostics.DebuggerNonUserCode()> _ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing AndAlso components IsNot Nothing Then components.Dispose() End If MyBase.Dispose(disposing) End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Me.SplitContainer1 = New System.Windows.Forms.SplitContainer Me.SplitContainer2 = New System.Windows.Forms.SplitContainer Me.grdAll = New System.Windows.Forms.DataGrid Me.grdCO = New System.Windows.Forms.DataGrid Me.grdName = New System.Windows.Forms.DataGrid Me.SplitContainer1.Panel1.SuspendLayout() Me.SplitContainer1.Panel2.SuspendLayout() Me.SplitContainer1.SuspendLayout() Me.SplitContainer2.Panel1.SuspendLayout() Me.SplitContainer2.Panel2.SuspendLayout() Me.SplitContainer2.SuspendLayout() CType(Me.grdAll, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.grdCO, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.grdName, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'SplitContainer1 '

Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill Me.SplitContainer1.Location = New System.Drawing.Point(0, 0) Me.SplitContainer1.Name = "SplitContainer1" Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal ' 'SplitContainer1.Panel1 ' Me.SplitContainer1.Panel1.Controls.Add(Me.grdAll) ' 'SplitContainer1.Panel2 ' Me.SplitContainer1.Panel2.Controls.Add(Me.SplitContainer2) Me.SplitContainer1.Size = New System.Drawing.Size(519, 485) Me.SplitContainer1.SplitterDistance = 180 Me.SplitContainer1.TabIndex = 2 Me.SplitContainer1.Text = "SplitContainer1" ' 'SplitContainer2 ' Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill Me.SplitContainer2.Location = New System.Drawing.Point(0, 0) Me.SplitContainer2.Name = "SplitContainer2" Me.SplitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal ' 'SplitContainer2.Panel1 ' Me.SplitContainer2.Panel1.Controls.Add(Me.grdCO) ' 'SplitContainer2.Panel2 ' Me.SplitContainer2.Panel2.Controls.Add(Me.grdName) Me.SplitContainer2.Size = New System.Drawing.Size(519, 301) Me.SplitContainer2.SplitterDistance = 173 Me.SplitContainer2.TabIndex = 0 Me.SplitContainer2.Text = "SplitContainer2" ' 'grdAll ' Me.grdAll.DataMember = "" Me.grdAll.Dock = System.Windows.Forms.DockStyle.Fill Me.grdAll.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.grdAll.Location = New System.Drawing.Point(0, 0) Me.grdAll.Name = "grdAll" Me.grdAll.Size = New System.Drawing.Size(519, 180) Me.grdAll.TabIndex = 0 ' 'grdCO ' Me.grdCO.DataMember = "" Me.grdCO.Dock = System.Windows.Forms.DockStyle.Fill Me.grdCO.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.grdCO.Location = New System.Drawing.Point(0, 0) Me.grdCO.Name = "grdCO" Me.grdCO.Size = New System.Drawing.Size(519, 173) Me.grdCO.TabIndex = 1 ' 'grdName ' Me.grdName.DataMember = "" Me.grdName.Dock = System.Windows.Forms.DockStyle.Fill

Me.grdName.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.grdName.Location = New System.Drawing.Point(0, 0) Me.grdName.Name = "grdName" Me.grdName.Size = New System.Drawing.Size(519, 124) Me.grdName.TabIndex = 1 ' 'Form1 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(519, 485) Me.Controls.Add(Me.SplitContainer1) Me.Name = "Form1" Me.Text = "Contacts" Me.SplitContainer1.Panel1.ResumeLayout(False) Me.SplitContainer1.Panel2.ResumeLayout(False) Me.SplitContainer1.ResumeLayout(False) Me.SplitContainer2.Panel1.ResumeLayout(False) Me.SplitContainer2.Panel2.ResumeLayout(False) Me.SplitContainer2.ResumeLayout(False) CType(Me.grdAll, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.grdCO, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.grdName, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) End Sub Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents End Class SplitContainer1 As System.Windows.Forms.SplitContainer grdAll As System.Windows.Forms.DataGrid SplitContainer2 As System.Windows.Forms.SplitContainer grdCO As System.Windows.Forms.DataGrid grdName As System.Windows.Forms.DataGrid

24. 8. 1. Find a value in DataView

Imports System.Windows.Forms Imports System.Data Imports System.Data.OleDb public class FindAValueInDataView public Shared Sub Main Application.Run(New Form1) End Sub End class Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Dim contacts_table As New DataTable("Contacts") ' Add columns. contacts_table.Columns.Add("FirstName", GetType(String)) contacts_table.Columns.Add("LastName", GetType(String)) contacts_table.Columns.Add("Street", GetType(String)) contacts_table.Columns.Add("City", GetType(String)) contacts_table.Columns.Add("State", GetType(String)) contacts_table.Columns.Add("Zip", GetType(String)) contacts_table.Rows.Add(New Object() "1234", "B", "A", "11111"}) contacts_table.Rows.Add(New Object() "22", "B", "C", "22222"}) contacts_table.Rows.Add(New Object() "3", "P", "K", "33333"}) contacts_table.Rows.Add(New Object() "4", "P", "KS", "44444"}) grdAll.DataSource = contacts_table grdAll.CaptionText = "All Records" Dim dv_name As New DataView(contacts_table) dv_name.RowFilter = "FirstName >= 'A'" grdName.DataSource = dv_name grdName.CaptionText = "LastName >= E" dv_name.Sort = "FirstName, LastName" MessageBox.Show(dv_name.Find(New String() {"A", "A"}).ToString) End Sub End Class <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Public Class Form1 Inherits System.Windows.Forms.Form 'Form overrides dispose to clean up the component list. <System.Diagnostics.DebuggerNonUserCode()> _ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing AndAlso components IsNot Nothing Then components.Dispose() End If MyBase.Dispose(disposing) End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Me.SplitContainer1 = New System.Windows.Forms.SplitContainer Me.SplitContainer2 = New System.Windows.Forms.SplitContainer Me.grdAll = New System.Windows.Forms.DataGrid Me.grdCO = New System.Windows.Forms.DataGrid {"A", "A", _ {"B", "B", _ {"C", "C", _ {"", "D", _

Me.grdName = New System.Windows.Forms.DataGrid Me.SplitContainer1.Panel1.SuspendLayout() Me.SplitContainer1.Panel2.SuspendLayout() Me.SplitContainer1.SuspendLayout() Me.SplitContainer2.Panel1.SuspendLayout() Me.SplitContainer2.Panel2.SuspendLayout() Me.SplitContainer2.SuspendLayout() CType(Me.grdAll, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.grdCO, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.grdName, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'SplitContainer1 ' Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill Me.SplitContainer1.Location = New System.Drawing.Point(0, 0) Me.SplitContainer1.Name = "SplitContainer1" Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal ' 'SplitContainer1.Panel1 ' Me.SplitContainer1.Panel1.Controls.Add(Me.grdAll) ' 'SplitContainer1.Panel2 ' Me.SplitContainer1.Panel2.Controls.Add(Me.SplitContainer2) Me.SplitContainer1.Size = New System.Drawing.Size(519, 485) Me.SplitContainer1.SplitterDistance = 180 Me.SplitContainer1.TabIndex = 2 Me.SplitContainer1.Text = "SplitContainer1" ' 'SplitContainer2 ' Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill Me.SplitContainer2.Location = New System.Drawing.Point(0, 0) Me.SplitContainer2.Name = "SplitContainer2" Me.SplitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal ' 'SplitContainer2.Panel1 ' Me.SplitContainer2.Panel1.Controls.Add(Me.grdCO) ' 'SplitContainer2.Panel2 ' Me.SplitContainer2.Panel2.Controls.Add(Me.grdName) Me.SplitContainer2.Size = New System.Drawing.Size(519, 301) Me.SplitContainer2.SplitterDistance = 173 Me.SplitContainer2.TabIndex = 0 Me.SplitContainer2.Text = "SplitContainer2" ' 'grdAll ' Me.grdAll.DataMember = "" Me.grdAll.Dock = System.Windows.Forms.DockStyle.Fill Me.grdAll.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.grdAll.Location = New System.Drawing.Point(0, 0) Me.grdAll.Name = "grdAll" Me.grdAll.Size = New System.Drawing.Size(519, 180) Me.grdAll.TabIndex = 0 '

'grdCO ' Me.grdCO.DataMember = "" Me.grdCO.Dock = System.Windows.Forms.DockStyle.Fill Me.grdCO.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.grdCO.Location = New System.Drawing.Point(0, 0) Me.grdCO.Name = "grdCO" Me.grdCO.Size = New System.Drawing.Size(519, 173) Me.grdCO.TabIndex = 1 ' 'grdName ' Me.grdName.DataMember = "" Me.grdName.Dock = System.Windows.Forms.DockStyle.Fill Me.grdName.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.grdName.Location = New System.Drawing.Point(0, 0) Me.grdName.Name = "grdName" Me.grdName.Size = New System.Drawing.Size(519, 124) Me.grdName.TabIndex = 1 ' 'Form1 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(519, 485) Me.Controls.Add(Me.SplitContainer1) Me.Name = "Form1" Me.Text = "Contacts" Me.SplitContainer1.Panel1.ResumeLayout(False) Me.SplitContainer1.Panel2.ResumeLayout(False) Me.SplitContainer1.ResumeLayout(False) Me.SplitContainer2.Panel1.ResumeLayout(False) Me.SplitContainer2.Panel2.ResumeLayout(False) Me.SplitContainer2.ResumeLayout(False) CType(Me.grdAll, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.grdCO, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.grdName, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) End Sub Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents Friend WithEvents End Class SplitContainer1 As System.Windows.Forms.SplitContainer grdAll As System.Windows.Forms.DataGrid SplitContainer2 As System.Windows.Forms.SplitContainer grdCO As System.Windows.Forms.DataGrid grdName As System.Windows.Forms.DataGrid

24. 9. 1. Create OleDbConnection to Sql server


Imports System.Data Module Test Sub Main() Dim sConnectionString, sSQL As String 'SQL Connection String sConnectionString = "Provider=SQLOLEDB.1;User ID=sa;Initial Catalog=YourDataBase;Data sSQL = "SELECT Title FROM yourTable" Dim conn As New System.Data.OleDb.OleDbConnection(sConnectionString) Dim cmd As New System.Data.OleDb.OleDbCommand(sSQL, conn) Dim dr As System.Data.OleDb.OleDbDataReader conn.Open() dr = cmd.ExecuteReader() Do While dr.Read() System.Console.WriteLine(dr.Item("Title")) Loop dr.Close() conn.Close() End Sub End Module

24. 9. 2. Create OleDbConnection to Access database

Imports System.Data Module Test Sub Main() Dim sConnectionString, sSQL As String

'SQL Connection String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\yourdatabase.mdb" sSQL = "SELECT Title FROM yourTable" Dim conn As New System.Data.OleDb.OleDbConnection(sConnectionString) Dim cmd As New System.Data.OleDb.OleDbCommand(sSQL, conn) Dim dr As System.Data.OleDb.OleDbDataReader conn.Open()

dr = cmd.ExecuteReader() Do While dr.Read() System.Console.WriteLine(dr.Item("Title")) Loop dr.Close() conn.Close() End Sub End Module

24. 9. 3. Using sql statement

Option Strict On Imports System.Data Imports System.Data.OleDb

Public Module UsingStatement Public Sub Main() Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=NorthWin Dim cmd As New OleDbCommand Dim dr As OleDbDataReader Using conn conn.Open cmd.CommandText = "Select * From Customers" cmd.CommandType = CommandType.Text cmd.Connection = conn dr = cmd.ExecuteReader() If dr.HasRows Then Do While dr.Read() ' Get first and last name of customer Console.WriteLine(CStr(dr.Item(1)) & " " & CStr(dr.Item(2))) Loop Else Console.WriteLine("The table has no rows.") End If End Using End Sub End Module

24. 10. 1. Connection string for SqlConnection

Module Module1 Dim sConnection As String = "Password=password;Persist Security Info=True;User ID=sa;Ini Sub Main() Dim objConn As New System.Data.SqlClient.SqlConnection(sConnection) Try objConn.Open() Catch myException As System.Exception Console.WriteLine(myException.Message) End Try Console.ReadLine() End Sub End Module

25. 1. 1. Singleton Example

Public Class Singleton Private Shared SP As Singleton Private InnerList as New Collections.ArrayList() Private Sub New() End Sub Public Shared Function Create() As Singleton If SP is Nothing Then SP = New Singleton() Return SP End Function Public ReadOnly Property List As Collections.ArrayList Get Return InnerList End Get End Property End Class Module SingletonExample Sub Main Dim CountValue as Integer Dim SP As Singleton = Singleton.Create() Dim SP2 As Singleton = Singleton.Create() SP.List.Add("First") SP.List.Add("Second") SP.List.Add("Third") For CountValue = 0 To SP2.List.Count - 1 Console.WriteLine(SP2.List.Item(CountValue).ToString()) Next End Sub

End Module

First Second Third

You might also like