⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formmain.vb

📁 Programming the .NET Compact Framework with vb 源代码
💻 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 + -