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

📄 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.Common
Imports System.Data.SqlServerCe
Imports System.Windows.Forms

Public Class FormMain
   Inherits System.Windows.Forms.Form
   Friend WithEvents MenuMain As System.Windows.Forms.MainMenu
   Friend WithEvents mitemFile As System.Windows.Forms.MenuItem
   Friend WithEvents mitemExit As System.Windows.Forms.MenuItem
   Friend WithEvents MenuItem3 As System.Windows.Forms.MenuItem
   Friend WithEvents mitemRecreate As System.Windows.Forms.MenuItem
   Friend WithEvents MenuItem2 As System.Windows.Forms.MenuItem
   Friend WithEvents mitemCreateSubscription As System.Windows.Forms.MenuItem
   Friend WithEvents mitemSynchronize As System.Windows.Forms.MenuItem

#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 mitemLocalUpdate As System.Windows.Forms.MenuItem
   Friend WithEvents dgridOutput As System.Windows.Forms.DataGrid
   Friend WithEvents MenuItem1 As System.Windows.Forms.MenuItem
   Friend WithEvents mitemConstraints As System.Windows.Forms.MenuItem
   Friend WithEvents mitemObjects As System.Windows.Forms.MenuItem
   Friend WithEvents MenuItem4 As System.Windows.Forms.MenuItem
   Friend WithEvents mitemEmployees As System.Windows.Forms.MenuItem
   Friend WithEvents mitemCustomers As System.Windows.Forms.MenuItem
   Friend WithEvents mitemProducts As System.Windows.Forms.MenuItem
   Friend WithEvents mitemOrders As System.Windows.Forms.MenuItem
   Friend WithEvents mitemOrderDetails As System.Windows.Forms.MenuItem
   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.MenuItem3 = New System.Windows.Forms.MenuItem
      Me.mitemRecreate = New System.Windows.Forms.MenuItem
      Me.MenuItem2 = New System.Windows.Forms.MenuItem
      Me.mitemCreateSubscription = New System.Windows.Forms.MenuItem
      Me.mitemSynchronize = New System.Windows.Forms.MenuItem
      Me.mitemLocalUpdate = New System.Windows.Forms.MenuItem
      Me.MenuItem1 = New System.Windows.Forms.MenuItem
      Me.mitemObjects = New System.Windows.Forms.MenuItem
      Me.mitemConstraints = New System.Windows.Forms.MenuItem
      Me.MenuItem4 = New System.Windows.Forms.MenuItem
      Me.mitemEmployees = New System.Windows.Forms.MenuItem
      Me.mitemCustomers = New System.Windows.Forms.MenuItem
      Me.mitemProducts = New System.Windows.Forms.MenuItem
      Me.mitemOrders = New System.Windows.Forms.MenuItem
      Me.mitemOrderDetails = New System.Windows.Forms.MenuItem
      Me.dgridOutput = New System.Windows.Forms.DataGrid
      '
      'MenuMain
      '
      Me.MenuMain.MenuItems.Add(Me.mitemFile)
      Me.MenuMain.MenuItems.Add(Me.MenuItem3)
      Me.MenuMain.MenuItems.Add(Me.MenuItem2)
      Me.MenuMain.MenuItems.Add(Me.MenuItem1)
      '
      'mitemFile
      '
      Me.mitemFile.MenuItems.Add(Me.mitemExit)
      Me.mitemFile.Text = "File"
      '
      'mitemExit
      '
      Me.mitemExit.Text = "Exit"
      '
      'MenuItem3
      '
      Me.MenuItem3.MenuItems.Add(Me.mitemRecreate)
      Me.MenuItem3.Text = "DataBase"
      '
      'mitemRecreate
      '
      Me.mitemRecreate.Text = "Re-create"
      '
      'MenuItem2
      '
      Me.MenuItem2.MenuItems.Add(Me.mitemCreateSubscription)
      Me.MenuItem2.MenuItems.Add(Me.mitemSynchronize)
      Me.MenuItem2.MenuItems.Add(Me.mitemLocalUpdate)
      Me.MenuItem2.Text = "Repl"
      '
      'mitemCreateSubscription
      '
      Me.mitemCreateSubscription.Text = "Create Subscription"
      '
      'mitemSynchronize
      '
      Me.mitemSynchronize.Text = "Synchronize"
      '
      'mitemLocalUpdate
      '
      Me.mitemLocalUpdate.Text = "Do Local Update"
      '
      'MenuItem1
      '
      Me.MenuItem1.MenuItems.Add(Me.mitemObjects)
      Me.MenuItem1.MenuItems.Add(Me.mitemConstraints)
      Me.MenuItem1.MenuItems.Add(Me.MenuItem4)
      Me.MenuItem1.Text = "View"
      '
      'mitemObjects
      '
      Me.mitemObjects.Text = "Objects"
      '
      'mitemConstraints
      '
      Me.mitemConstraints.Text = "Contraints"
      '
      'MenuItem4
      '
      Me.MenuItem4.MenuItems.Add(Me.mitemEmployees)
      Me.MenuItem4.MenuItems.Add(Me.mitemCustomers)
      Me.MenuItem4.MenuItems.Add(Me.mitemProducts)
      Me.MenuItem4.MenuItems.Add(Me.mitemOrders)
      Me.MenuItem4.MenuItems.Add(Me.mitemOrderDetails)
      Me.MenuItem4.Text = "Tables"
      '
      'mitemEmployees
      '
      Me.mitemEmployees.Text = "Employees"
      '
      'mitemCustomers
      '
      Me.mitemCustomers.Text = "Customers"
      '
      'mitemProducts
      '
      Me.mitemProducts.Text = "Products"
      '
      'mitemOrders
      '
      Me.mitemOrders.Text = "Orders"
      '
      'mitemOrderDetails
      '
      Me.mitemOrderDetails.Text = """Order Details"""
      '
      'dgridOutput
      '
      Me.dgridOutput.Size = New System.Drawing.Size(240, 248)
      '
      'FormMain
      '
      Me.Controls.Add(Me.dgridOutput)
      Me.Menu = Me.MenuMain
      Me.Text = "FormMain"

   End Sub

#End Region

   '  The database file.
   Private strDBFile As String = _
                           "My Documents\Northwind.sdf"

   '  The local connection string.
   Private strConnLocal As String = "Data Source=" + _
                           "My Documents\Northwind.sdf"

   '  The remote connection string.
   'Private strConnRemote As String = _
   '                        "Provider=sqloledb; " + _
   '                        "Data Source=Snowden; " + _
   '                        "Initial Catalog=Northwind; " + _
   '                        "user id=Davolio;pwd=Nancy; "

   '  The URL
   Private strURL As String = _
                  "http://207.202.168.30/YaoDurantRDA/sscesa20.dll"


   Private Sub FormMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      '      mitemRecreate_Click(mitemRecreate, e.Empty)
      '      mitemCreateSubscription_Click(mitemCreateSubscription, e.Empty)
      '      mitemSynchronize_Click(mitemSynchronize, e.Empty)
      Me.MinimizeBox = False
   End Sub


   Private Sub mitemRecreate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mitemRecreate.Click
      If File.Exists(strDBFile) Then File.Delete(strDBFile)
   End Sub


   Private Sub mitemCreateSubscription_Click( _
                        ByVal sender As Object, _
                        ByVal e As EventArgs _
                        ) _
                        Handles mitemCreateSubscription.Click
      Dim replNW As New _
            SqlCeReplication
      Try
         With replNW
            .ExchangeType = ExchangeType.BiDirectional
            .InternetUrl = strURL
            .InternetLogin = ""
            .InternetPassword = ""
            .Publisher = "SNOWDEN"
            .PublisherDatabase = "Northwind"
            .Publication = "EmployeeOrderInfo"
            .PublisherSecurityMode = _
               SecurityType.DBAuthentication
            .PublisherLogin = "Davolio"
            .PublisherPassword = "Nancy"
            .Subscriber = "YaoDurant"
            .SubscriberConnectionString = strConnLocal

            .AddSubscription(AddOption.CreateDatabase)
         End With
      Catch exSQL As SqlCeException
         HandleSQLException(exSQL)
      Finally
         replNW.Dispose()
      End Try
   End Sub

   Private Sub mitemSynchronize_Click( _
                                 ByVal sender As Object, _
                                 ByVal e As EventArgs _
                                 ) _
                                 Handles mitemSynchronize.Click
      Dim replNW As New _
         SqlCeReplication
      Try
         With replNW
            .ExchangeType = ExchangeType.BiDirectional
            .InternetUrl = strURL
            .InternetLogin = ""
            .InternetPassword = ""
            .Publisher = "SNOWDEN"
            .PublisherDatabase = "Northwind"
            .Publication = "EmployeeOrderInfo"
            .PublisherSecurityMode = _
               SecurityType.DBAuthentication
            .PublisherLogin = "Davolio"
            .PublisherPassword = "Nancy"
            .Subscriber = "YaoDurant"
            .SubscriberConnectionString = strConnLocal

            .Synchronize()
         End With
      Catch exSQL As SqlCeException
         HandleSQLException(exSQL)
      Finally
         replNW.Dispose()
      End Try
   End Sub

   Private Sub mitemLocalUpdate_Click( _
                                 ByVal sender As Object, _
                                 ByVal e As EventArgs _
                                 ) _
                                 Handles mitemLocalUpdate.Click
      Dim connLocal As New SqlCeConnection(strConnLocal)
      connLocal.Open()

      Dim cmndLocal As New SqlCeCommand
      Try
         With cmndLocal
            .Connection = connLocal
            .CommandText = _
               "INSERT ""Order Details"" " & _
               " (OrderID, ProductID, UnitPrice, " & _
               "  Quantity, Discount) " & _
               " VALUES (10258, 1, 19.95, 44, 0.0)"
            .ExecuteNonQuery()
         End With
      Catch exSQL As SqlCeException
         HandleSQLException(exSQL)
      Finally
         cmndLocal.Dispose()
         connLocal.Close()
      End Try
   End Sub

   Private Sub mitemObjects_Click(ByVal sender As Object, _
                                  ByVal e As EventArgs _
                                  ) _
                                  Handles mitemObjects.Click

      '  Show all database objects.
      DisplayResultSet("SELECT * FROM msysObjects", _
                       "Type, Flags DESC, Name")
   End Sub

   Private Sub mitemConstraints_Click( _
                                 ByVal sender As Object, _
                                 ByVal e As EventArgs _
                                 ) _
                                 Handles mitemConstraints.Click

      '  Show all database constraints.
      DisplayResultSet("SELECT * FROM msysConstraints", _
                       "TABLE_NAME, CONSTRAINT_TYPE DESC, CONSTRAINT_NAME, ORDINAL")
   End Sub

   Private Sub mitemTables_Click(ByVal sender As Object, _
                                 ByVal e As EventArgs _
                                 ) _
                                 Handles mitemEmployees.Click, _
                                         mitemEmployees.Click, _
                                         mitemProducts.Click, _
                                         mitemOrders.Click, _
                                         mitemOrderDetails.Click

      With DirectCast(sender, MenuItem)
         DisplayResultSet("SELECT * FROM " & .Text, String.Empty)
      End With

   End Sub

   Private Sub mitemExit_Click(ByVal sender As Object, ByVal e As EventArgs) Handles mitemExit.Click
      Application.Exit()
   End Sub

   Private Sub HandleSQLException(ByVal exSQL As SqlCeException)
      Dim errSQL As SqlCeError
      For Each errSQL In exSQL.Errors
         With errSQL
            MessageBox.Show(.Message & " : " & .Source & " : " & .ErrorParameters(0) & " : " & .ErrorParameters(1) & " : " & .ErrorParameters(2))
            If Not exSQL.InnerException Is Nothing Then
               MessageBox.Show(exSQL.InnerException.ToString())
            End If
         End With
      Next
   End Sub

   Private Sub DisplayResultSet(ByVal strSQL As String, _
                                ByVal strSort As String)
      '  Create adapter.
      Dim daptDB As New SqlCeDataAdapter(strSQL, strConnLocal)

      '  Create data table.
      Dim dtabTemp As New DataTable("Temp")

      '  Fill it.
      daptDB.Fill(dtabTemp)

      '  Sort it
      dtabTemp.DefaultView.Sort = strSort

      '  Display it.
      dgridOutput.DataSource = dtabTemp
   End Sub

End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -