📄 formmain.vb
字号:
' -----------------------------------------------------------------------------
' Code from _Programming the .NET Compact Framework with VB_
' and _Programming the .NET Compact Framework with C#_
' (c) Copyright 2002-2004 Paul Yao and David Durant.
' All rights reserved.
' -----------------------------------------------------------------------------
Imports System
Imports System.IO
Imports System.Data
Imports System.Data.SqlServerCe
Imports System.Windows.Forms
Imports UtilData
Public Class FormMain
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)
MyBase.Dispose(disposing)
End Sub
'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 MenuMain As MainMenu
Friend WithEvents mitemFile As MenuItem
Friend WithEvents mitemBase As MenuItem
Friend WithEvents mitemCreateDB As MenuItem
Friend WithEvents mitemCreateTables As MenuItem
Friend WithEvents mitemLoadData As MenuItem
Friend WithEvents mitemDropDB As MenuItem
Friend WithEvents MenuItem1 As System.Windows.Forms.MenuItem
Friend WithEvents mitemBuildDS As System.Windows.Forms.MenuItem
Friend WithEvents mitemExit As System.Windows.Forms.MenuItem
Friend WithEvents dgridParent As System.Windows.Forms.DataGrid
Friend WithEvents dgridChild As System.Windows.Forms.DataGrid
Private Sub InitializeComponent()
Me.MenuMain = New System.Windows.Forms.MainMenu
Me.mitemFile = New System.Windows.Forms.MenuItem
Me.mitemExit = New System.Windows.Forms.MenuItem
Me.mitemBase = New System.Windows.Forms.MenuItem
Me.mitemCreateDB = New System.Windows.Forms.MenuItem
Me.mitemCreateTables = New System.Windows.Forms.MenuItem
Me.mitemLoadData = New System.Windows.Forms.MenuItem
Me.mitemDropDB = New System.Windows.Forms.MenuItem
Me.MenuItem1 = New System.Windows.Forms.MenuItem
Me.mitemBuildDS = New System.Windows.Forms.MenuItem
Me.dgridParent = New System.Windows.Forms.DataGrid
Me.dgridChild = New System.Windows.Forms.DataGrid
'
'MenuMain
'
Me.MenuMain.MenuItems.Add(Me.mitemFile)
Me.MenuMain.MenuItems.Add(Me.mitemBase)
Me.MenuMain.MenuItems.Add(Me.MenuItem1)
'
'mitemFile
'
Me.mitemFile.MenuItems.Add(Me.mitemExit)
Me.mitemFile.Text = "File"
'
'mitemExit
'
Me.mitemExit.Text = "Exit"
'
'mitemBase
'
Me.mitemBase.MenuItems.Add(Me.mitemCreateDB)
Me.mitemBase.MenuItems.Add(Me.mitemCreateTables)
Me.mitemBase.MenuItems.Add(Me.mitemLoadData)
Me.mitemBase.MenuItems.Add(Me.mitemDropDB)
Me.mitemBase.Text = "Database"
'
'mitemCreateDB
'
Me.mitemCreateDB.Text = "Create DB"
'
'mitemCreateTables
'
Me.mitemCreateTables.Text = "Create Tables"
'
'mitemLoadData
'
Me.mitemLoadData.Text = "Load Data"
'
'mitemDropDB
'
Me.mitemDropDB.Text = "Drop Database"
'
'MenuItem1
'
Me.MenuItem1.MenuItems.Add(Me.mitemBuildDS)
Me.MenuItem1.Text = "DataSet"
'
'mitemBuildDS
'
Me.mitemBuildDS.Text = "Build DS"
'
'dgridParent
'
Me.dgridParent.Size = New System.Drawing.Size(240, 88)
Me.dgridParent.Text = "Parent"
'
'dgridChild
'
Me.dgridChild.Location = New System.Drawing.Point(0, 104)
Me.dgridChild.Size = New System.Drawing.Size(240, 96)
Me.dgridChild.Text = "Child"
'
'FormMain
'
Me.Controls.Add(Me.dgridChild)
Me.Controls.Add(Me.dgridParent)
Me.Menu = Me.MenuMain
Me.MinimizeBox = False
Me.Text = "FormMain"
End Sub
#End Region
Private strFile As String = _
"My Documents\ourProduceCo.sdf"
Private strConn As String = _
"Data Source=" & strFile
Private Sub mitemCreateDB_Click(ByVal sender As Object, _
ByVal e As EventArgs _
) _
Handles mitemCreateDB.Click
If File.Exists(strFile) Then Exit Sub
Dim dbEngine As New SqlCeEngine
Try
dbEngine.LocalConnectionString = strConn
dbEngine.CreateDatabase()
Catch exSQL As SqlCeException
With exSQL
MessageBox.Show( _
"Unable to create database at " & strFile & _
". Reason: " & .Errors(0).Message)
End With
Finally
End Try
End Sub
Private Sub mitemCreateTables_Click( _
ByVal sender As Object, _
ByVal e As EventArgs _
) _
Handles mitemCreateTables.Click
Dim connDB As New SqlServerCe.SqlCeConnection
Dim cmndDB As New SqlServerCe.SqlCeCommand
Try
With connDB
.ConnectionString = strConn
.Open()
End With
With cmndDB
.Connection = connDB
.CommandText = _
" CREATE TABLE Categories " & _
" ( CategoryID integer not null " & _
" CONSTRAINT PKCategories PRIMARY KEY " & _
" , CategoryName nchar(20) not null " & _
" )"
.ExecuteNonQuery()
.CommandText = _
" CREATE TABLE Products " & _
" ( ProductID integer not null " & _
" CONSTRAINT PKProducts PRIMARY KEY " & _
" , ProductName nchar(20) not null " & _
" , CategoryID integer not null " & _
" , CONSTRAINT FKProdCat foreign key (CategoryID) " & _
" references Categories(CategoryID) " & _
" )"
.ExecuteNonQuery()
End With
Catch exSQL As SqlCeException
With exSQL
MsgBox(.Errors(0).Message)
End With
Finally
With connDB
.Close()
End With
End Try
End Sub
Private Sub mitemLoadData_Click(ByVal sender As Object, _
ByVal e As EventArgs _
) _
Handles mitemLoadData.Click
Dim connDB As New SqlServerCe.SqlCeConnection
Dim cmndDB As New SqlServerCe.SqlCeCommand
With connDB
.ConnectionString = strConn
.Open()
End With
With cmndDB
.Connection = connDB
.CommandText = _
" INSERT Categories " & _
" (CategoryID, CategoryName)" & _
" VALUES (1, 'Franistans' )"
.ExecuteNonQuery()
.CommandText = _
" INSERT Categories " & _
" (CategoryID, CategoryName)" & _
" VALUES (2, 'Widgets' )"
.ExecuteNonQuery()
.CommandText = _
" INSERT Products " & _
" (ProductID, ProductName, CategoryID)" & _
" VALUES (11, 'Franistans - Large', 1 )"
.ExecuteNonQuery()
.CommandText = _
" INSERT Products " & _
" (ProductID, ProductName, CategoryID)" & _
" VALUES (12, 'Franistans - Medium', 1 )"
.ExecuteNonQuery()
.CommandText = _
" INSERT Products " & _
" (ProductID, ProductName, CategoryID)" & _
" VALUES (13, 'Franistans - Small', 1 )"
.ExecuteNonQuery()
.CommandText = _
" INSERT Products " & _
" (ProductID, ProductName, CategoryID)" & _
" VALUES (21, 'Widgets - Large', 2 )"
.ExecuteNonQuery()
.CommandText = _
" INSERT Products " & _
" (ProductID, ProductName, CategoryID)" & _
" VALUES (22, 'Widgets - Medium', 2 )"
.ExecuteNonQuery()
.CommandText = _
" INSERT Products " & _
" (ProductID, ProductName, CategoryID)" & _
" VALUES (23, 'Widgets - Small', 2 )"
.ExecuteNonQuery()
End With
With connDB
.Close()
End With
End Sub
Private Sub mitemDropDB_Click(ByVal sender As Object, _
ByVal e As EventArgs _
) _
Handles mitemDropDB.Click
If File.Exists(strFile) Then File.Delete(strFile)
End Sub
Private Sub mitemBuildDS_Click(ByVal sender As Object, _
ByVal e As EventArgs _
) _
Handles mitemBuildDS.Click
' Build the DataSet from the Database.
Dim dtabCurrent As DataTable = _
UtilSqlCE.BuildDataSet(strFile).Tables(0)
' Display the first table in the Parent datagrid control.
With Me.dgridParent
.DataSource = dtabCurrent
.Text = dtabCurrent.TableName
End With
End Sub
Private Sub dgridParent_Click(ByVal sender As Object, _
ByVal e As EventArgs _
) _
Handles dgridParent.Click
' Get the child rows of the currently selected row,
' based on the "XXX" relationship. Turn that
' array of rows into a table and make that table
' the DataSource of the child DataGrid.
' The Parent DataGrid's DataTable
Dim dtabParent As DataTable = _
DirectCast(dgridParent.DataSource, DataTable)
' The selected row in the Parent DataGrid
Dim ixSelectedRow As Integer = dgridParent.CurrentRowIndex
' Retrieve the table of child rows.
dgridChild.DataSource = _
UtilSqlCE.ConvertArrayToTable( _
dtabParent.Rows(ixSelectedRow). _
GetChildRows("FKProdCat"))
End Sub
Private Sub mitemExit_Click(ByVal sender As Object, _
ByVal e As EventArgs _
) _
Handles mitemExit.Click
Application.Exit()
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -