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

📄 mainwnd.vb

📁 一个小的数据库管理系统
💻 VB
字号:
Public Class frmMain
    Inherits System.Windows.Forms.Form

#Region " Windows 窗体设计器生成的代码 "

    Public Sub New()
        MyBase.New()

        '该调用是 Windows 窗体设计器所必需的。
        InitializeComponent()

        '在 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

    'Windows 窗体设计器所必需的
    Private components As System.ComponentModel.IContainer

    '注意:以下过程是 Windows 窗体设计器所必需的
    '可以使用 Windows 窗体设计器修改此过程。
    '不要使用代码编辑器修改它。
    Public WithEvents MainMenu1 As System.Windows.Forms.MainMenu
    Public WithEvents DB As System.Windows.Forms.MenuItem
    Public WithEvents OpenDB As System.Windows.Forms.MenuItem
    Public WithEvents ExitProg As System.Windows.Forms.MenuItem
    Public WithEvents DataEdit As System.Windows.Forms.MenuItem
    Public WithEvents AddField As System.Windows.Forms.MenuItem
    Public WithEvents AddIndex As System.Windows.Forms.MenuItem
    Friend WithEvents TreeView1 As System.Windows.Forms.TreeView
    Friend WithEvents Splitter1 As System.Windows.Forms.Splitter
    Friend WithEvents ListView1 As System.Windows.Forms.ListView
    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
    Friend WithEvents ContextMenu1 As System.Windows.Forms.ContextMenu
    Friend WithEvents MenuItem1 As System.Windows.Forms.MenuItem
    Friend WithEvents MenuItem2 As System.Windows.Forms.MenuItem
    Friend WithEvents MenuItem3 As System.Windows.Forms.MenuItem
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.MainMenu1 = New System.Windows.Forms.MainMenu()
        Me.DB = New System.Windows.Forms.MenuItem()
        Me.OpenDB = New System.Windows.Forms.MenuItem()
        Me.ExitProg = New System.Windows.Forms.MenuItem()
        Me.DataEdit = New System.Windows.Forms.MenuItem()
        Me.AddField = New System.Windows.Forms.MenuItem()
        Me.AddIndex = New System.Windows.Forms.MenuItem()
        Me.TreeView1 = New System.Windows.Forms.TreeView()
        Me.Splitter1 = New System.Windows.Forms.Splitter()
        Me.ListView1 = New System.Windows.Forms.ListView()
        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
        Me.ContextMenu1 = New System.Windows.Forms.ContextMenu()
        Me.MenuItem1 = New System.Windows.Forms.MenuItem()
        Me.MenuItem2 = New System.Windows.Forms.MenuItem()
        Me.MenuItem3 = New System.Windows.Forms.MenuItem()
        Me.SuspendLayout()
        '
        'MainMenu1
        '
        Me.MainMenu1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.DB, Me.DataEdit})
        '
        'DB
        '
        Me.DB.Index = 0
        Me.DB.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.OpenDB, Me.ExitProg})
        Me.DB.MergeType = System.Windows.Forms.MenuMerge.Remove
        Me.DB.Text = "文件"
        '
        'OpenDB
        '
        Me.OpenDB.Index = 0
        Me.OpenDB.MergeType = System.Windows.Forms.MenuMerge.Remove
        Me.OpenDB.Text = "打开数据库"
        '
        'ExitProg
        '
        Me.ExitProg.Index = 1
        Me.ExitProg.MergeType = System.Windows.Forms.MenuMerge.Remove
        Me.ExitProg.Text = "退出"
        '
        'DataEdit
        '
        Me.DataEdit.Index = 1
        Me.DataEdit.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.AddField, Me.AddIndex})
        Me.DataEdit.MergeType = System.Windows.Forms.MenuMerge.Remove
        Me.DataEdit.Text = "编辑"
        '
        'AddField
        '
        Me.AddField.Index = 0
        Me.AddField.MergeType = System.Windows.Forms.MenuMerge.Remove
        Me.AddField.Text = "添加字段"
        '
        'AddIndex
        '
        Me.AddIndex.Index = 1
        Me.AddIndex.MergeType = System.Windows.Forms.MenuMerge.Remove
        Me.AddIndex.Text = "添加索引"
        '
        'TreeView1
        '
        Me.TreeView1.Dock = System.Windows.Forms.DockStyle.Left
        Me.TreeView1.ImageIndex = -1
        Me.TreeView1.Name = "TreeView1"
        Me.TreeView1.SelectedImageIndex = -1
        Me.TreeView1.Size = New System.Drawing.Size(121, 273)
        Me.TreeView1.TabIndex = 0
        '
        'Splitter1
        '
        Me.Splitter1.Location = New System.Drawing.Point(121, 0)
        Me.Splitter1.Name = "Splitter1"
        Me.Splitter1.Size = New System.Drawing.Size(3, 273)
        Me.Splitter1.TabIndex = 1
        Me.Splitter1.TabStop = False
        '
        'ListView1
        '
        Me.ListView1.Dock = System.Windows.Forms.DockStyle.Fill
        Me.ListView1.Location = New System.Drawing.Point(124, 0)
        Me.ListView1.Name = "ListView1"
        Me.ListView1.Size = New System.Drawing.Size(168, 273)
        Me.ListView1.TabIndex = 2
        '
        'ContextMenu1
        '
        Me.ContextMenu1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.MenuItem1, Me.MenuItem2, Me.MenuItem3})
        '
        'MenuItem1
        '
        Me.MenuItem1.Index = 0
        Me.MenuItem1.Text = "添加记录"
        '
        'MenuItem2
        '
        Me.MenuItem2.Index = 1
        Me.MenuItem2.Text = "删除记录"
        '
        'MenuItem3
        '
        Me.MenuItem3.Index = 2
        Me.MenuItem3.Text = "编辑记录"
        '
        'frmMain
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
        Me.ClientSize = New System.Drawing.Size(292, 273)
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.ListView1, Me.Splitter1, Me.TreeView1})
        Me.Menu = Me.MainMenu1
        Me.Name = "frmMain"
        Me.Text = "数据库管理"
        Me.ResumeLayout(False)

    End Sub

#End Region

    Private Sub OpenDB_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenDB.Click
        Dim i As Integer
        Me.OpenFileDialog1.Title = "请选择一个数据库:"
        Me.OpenFileDialog1.Filter = "数据库(*.mdb)|*.mdb"
        Me.OpenFileDialog1.InitialDirectory = Application.CommonAppDataPath

        If Me.OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            MyDB = DAODBEngine_definst.OpenDatabase(Me.OpenFileDialog1.FileName)

            TableNum = MyDB.TableDefs.Count
            For i = 0 To TableNum - 1 Step 1
                If (MyDB.TableDefs(i).Attributes = 0) Then
                    Me.TreeView1.Nodes.Add(MyDB.TableDefs(i).Name)
                End If
            Next
        End If
    End Sub

    Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
        Dim Index As Short = Me.TreeView1.SelectedNode.Index
        Dim i As Integer
        MyRS = MyDB.OpenRecordset("Select * From " & Me.TreeView1.SelectedNode.Text)
        MyTD = MyDB.TableDefs(Index)
        CurrentTable = MyTD.Name
        FieldNum = MyRS.Fields.Count
        Me.ListView1.Clear()

        For i = 0 To FieldNum - 1 Step 1
            Me.ListView1.Columns.Add(MyRS.Fields(i).Name, 100, HorizontalAlignment.Left)
        Next

        Dim tempItem As ListViewItem
        MyRS.MoveFirst()
        While Not MyRS.EOF
            tempItem = New ListViewItem(MyRS.Fields(0).Value.ToString)
            For i = 1 To FieldNum - 1 Step 1
                tempItem.SubItems.Add(MyRS.Fields(i).Value.ToString)
            Next
            Me.ListView1.Items.Add(tempItem)
            MyRS.MoveNext()
        End While
    End Sub

    Private Sub frmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
        With Me.ListView1
            .View = View.Details
            .LabelEdit = False
            .CheckBoxes = False
            .FullRowSelect = True
            .GridLines = True
            .Sorting = SortOrder.None
            .ContextMenu = Me.ContextMenu1
        End With

        With Me.TreeView1
            .FullRowSelect = True
            .HideSelection = False
            .LabelEdit = False
            .ShowLines = True
            .ShowPlusMinus = True
            .ShowRootLines = True
        End With
    End Sub

    Private Sub ExitProg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitProg.Click
        End
    End Sub

    Private Sub AddField_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AddField.Click
        Dim dlg As frmAddField
        dlg = New frmAddField()
        dlg.ShowDialog()
    End Sub

    Private Sub AddIndex_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AddIndex.Click
        Dim dlg As frmAddIndex
        dlg = New frmAddIndex()
        dlg.ShowDialog()
    End Sub

    Private Sub ContextMenu1_Popup(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ContextMenu1.Popup
        Dim i As Integer
        If Me.TreeView1.SelectedNode Is Nothing Then
            For i = 0 To Me.ContextMenu1.MenuItems.Count - 1
                Me.ContextMenu1.MenuItems(i).Enabled = False
            Next
        Else
            For i = 0 To Me.ContextMenu1.MenuItems.Count - 1
                Me.ContextMenu1.MenuItems(i).Enabled = True
            Next
        End If

        If Me.ListView1.SelectedItems.Count <= 0 Then
            For i = 0 To Me.ContextMenu1.MenuItems.Count - 1
                Me.ContextMenu1.MenuItems(i).Enabled = False
            Next
        Else
            For i = 0 To Me.ContextMenu1.MenuItems.Count - 1
                Me.ContextMenu1.MenuItems(i).Enabled = True
            Next
        End If
    End Sub

    Private Sub ListView1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.DoubleClick
        If Me.ListView1.SelectedItems.Count <= 0 Then
            Exit Sub
        End If

        MyRS.MoveFirst()
        MyRS.Move(Me.ListView1.SelectedItems(0).Index)

        Dim dlg As ViewData
        dlg = New ViewData()
        dlg.ShowDialog()
    End Sub

    Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem1.Click
        MyRS.AddNew()
        Dim dlg As ViewData
        Dim i, j As Integer
        dlg = New ViewData()
        If dlg.ShowDialog() = DialogResult.OK Then
            For i = 0 To dlg.Controls.Count - 1
                If (dlg.Controls(i).GetType() Is GetType(TextBox)) Then
                    For j = 0 To MyRS.Fields.Count - 1
                        If dlg.Controls(i).Name = "Txt_" + MyRS.Fields(j).Name Then
                            MyRS.Fields(j).Value = dlg.Controls(i).Text
                        End If
                    Next
                End If
            Next
            MyRS.Update()
        End If
        Me.TreeView1_AfterSelect(Nothing, Nothing)
    End Sub

    Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click
        MyRS.Delete()
        MyRS.Update()
    End Sub

    Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click
        MyRS.Edit()
        Dim dlg As ViewData
        Dim i, j As Integer
        dlg = New ViewData()
        If dlg.ShowDialog() = DialogResult.OK Then
            For i = 0 To dlg.Controls.Count - 1
                If (dlg.Controls(i).GetType() Is GetType(TextBox)) Then
                    For j = 0 To MyRS.Fields.Count - 1
                        If dlg.Controls(i).Name = "Txt_" + MyRS.Fields(j).Name Then
                            MyRS.Fields(j).Value = dlg.Controls(i).Text
                        End If
                    Next
                End If
            Next
            MyRS.Update()
        End If
        Me.TreeView1_AfterSelect(Nothing, Nothing)
    End Sub
End Class

⌨️ 快捷键说明

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