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

📄 employee.vb

📁 采用Visual Basic.NET开发的高速公路收费系统.
💻 VB
📖 第 1 页 / 共 3 页
字号:
                              ByVal e As System.EventArgs) _
                              Handles MyBase.Load
        Me.ComboBox1.SelectedIndex = 0
        '设置组合框的选取索引号
        Call GetUserInfo()
        '查询表单
        Call ShowUserInfo(0)
        '显示数据
        Call SetReadOnly(True)
    End Sub

    Public Function ShowUserInfo(ByVal index As Integer)
        Dim LoginUser(UserCount.Count) As LoginUser
        Dim UserInfo(UserCount.Count) As UserInfo
        '定义当前数据行数数组
        LoginUser(index).UserID = DS.Tables.Item(0).Rows.Item(index).Item(0)
        LoginUser(index).Password = DS.Tables.Item(0).Rows.Item(index).Item(1)
        LoginUser(index).IsAdmin = DS.Tables.Item(0).Rows.Item(index).Item(2)
        '获取当前行的数据
        UserInfo(index).TName = DS.Tables.Item(0).Rows(index).Item(4)
        UserInfo(index).Gender = DS.Tables.Item(0).Rows(index).Item(5)
        UserInfo(index).Age = DS.Tables.Item(0).Rows(index).Item(6)
        UserInfo(index).Relation = DS.Tables.Item(0).Rows(index).Item(7)
        UserInfo(index).OtherInfo = DS.Tables.Item(0).Rows(index).Item(8)
        '获取当前行的数据
        Me.TextBox1.Text = LoginUser(index).UserID
        Me.TextBox2.Text = LoginUser(index).Password
        Me.CheckBox1.Checked = LoginUser(index).IsAdmin
        '显示当前行数据
        Me.TextBox3.Text = UserInfo(index).TName
        If UserInfo(index).Gender = True Then
            Me.ComboBox1.SelectedIndex = 0
        Else
            Me.ComboBox1.SelectedIndex = 1
        End If
        Me.TextBox4.Text = UserInfo(index).Age
        Me.TextBox5.Text = UserInfo(index).Relation
        Me.TextBox6.Text = UserInfo(index).OtherInfo
        '显示当前行数据
    End Function

    Public Function GetUserInfo() As DataSet
        ' LoginSQLstr = "SELECT * FROM Login"
        UserSQLstr = "SELECT Login.*,UserInfo.*  From Login,UserInfo " & _
        "WHERE UserInfo.UserID=Login.User"
        Message = "没有用户信息,或者数据库访问失败,请检查数据库的设置。"
        Caption = "访问数据库失败"
        '定义没有该账号的消息
        Call ConnToDB(UserSQLstr, Err.Description, Caption)
        '调用模块中数据库访问函数来查询。
        If IsError = False Then
            UserCount.Count = DS.Tables.Item(0).Rows.Count - 1
            '获取数据集中所有数据的行数

            '没有发生错误时继续进行,并打开数据库。
        Else
            Exit Function
            '退出子过程。

            '发生错误时需要触发的事件。
        End If
        '错误处理
    End Function


    Public Function Clear()
        Me.TextBox1.Text = "" : Me.TextBox2.Text = ""
        Me.TextBox3.Text = "" : Me.TextBox4.Text = ""
        Me.TextBox5.Text = "" : Me.CheckBox1.Checked = False
        Me.TextBox6.Text = ""
    End Function


    Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, _
                                     ByVal e As System.Windows.Forms. _
                                     ToolBarButtonClickEventArgs) _
                                     Handles ToolBar1.ButtonClick
        Select Case Me.ToolBar1.Buttons.IndexOf(e.Button)
            Case 0
                UserCount.Index = 0
                Call ShowUserInfo(UserCount.Index)
                '显示第一项记录
            Case 1
                UserCount.Index -= 1
                If UserCount.Index < 0 Then
                    MessageBox.Show("已经到了第一项记录了。", "提示信息", _
                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                    UserCount.Index = 0
                    Call ShowUserInfo(UserCount.Index)
                Else
                    Call ShowUserInfo(UserCount.Index)
                End If
                '显示前一项记录
            Case 2
                UserCount.Index += 1
                If UserCount.Index > UserCount.Count Then
                    MessageBox.Show("已经到了最后一项记录了。", "提示信息", _
                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                    UserCount.Index = UserCount.Count
                    Call ShowUserInfo(UserCount.Index)
                Else
                    Call ShowUserInfo(UserCount.Index)
                End If
                '显示后一项纪录
            Case 3
                UserCount.Index = UserCount.Count
                Call ShowUserInfo(UserCount.Index)
                '显示子后一项记录
            Case 5
                Dim Result As DialogResult
                If Result = MessageBox.Show("您真的要退出吗?", _
                "退出信息", MessageBoxButtons.OKCancel, MessageBoxIcon.Question).Cancel Then
                    Exit Sub
                Else
                    Me.Close()
                End If
                '退出
        End Select
    End Sub

    Private Sub Button1_Click_1(ByVal sender As System.Object, _
                                ByVal e As System.EventArgs) _
                                Handles Button1.Click
        Dim frmMPassword As New ModifyPassword()
        frmMPassword.ShowDialog()
        '
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button5.Click
        Dim SLoginSQLstr As String
        Dim SUserSQLstr As String
        Dim AddUser As LoginUser
        Dim NewUserInfo As UserInfo
        Dim IsAdministrator As Integer
        Dim Sexual As Integer = Math.Abs(Me.ComboBox1.SelectedIndex - 1)
        '定义字段
        If Me.TextBox1.Text = "" Or Me.TextBox2.Text = "" Then
            MessageBox.Show("请输入账号,新用户的账号和密码均不能为空。", "添加失败", _
            MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            Exit Sub
        End If
        If Me.TextBox3.Text = "" Then
            MessageBox.Show("请务必输入用户的真实姓名,防止作弊行为。", "添加失败", _
            MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            Exit Sub
        End If
        '判断不能为空的字段
        AddUser.UserID = Me.TextBox1.Text
        AddUser.Password = Me.TextBox2.Text
        AddUser.IsAdmin = Me.CheckBox1.Checked
        NewUserInfo.UserID = AddUser.UserID
        NewUserInfo.TName = Me.TextBox3.Text
        NewUserInfo.Age = CInt(Me.TextBox4.Text)
        NewUserInfo.Relation = Me.TextBox5.Text
        NewUserInfo.OtherInfo = Me.TextBox6.Text
        If Me.ComboBox1.SelectedIndex = 0 Then
            NewUserInfo.Gender = True
        Else
            NewUserInfo.Gender = False
        End If
        '获取记录的值

        Dim myDR As DataRow
        myDR = DS.Tables.Item(0).NewRow
        myDR.Item(0) = AddUser.UserID
        myDR.Item(1) = AddUser.Password
        myDR.Item(2) = AddUser.IsAdmin
        myDR.Item(3) = NewUserInfo.UserID
        myDR.Item(4) = NewUserInfo.TName
        myDR.Item(5) = NewUserInfo.Gender
        myDR.Item(6) = NewUserInfo.Age
        myDR.Item(7) = NewUserInfo.Relation
        myDR.Item(8) = NewUserInfo.OtherInfo

        DS.Tables.Item(0).Rows.Add(myDR)

        If AddUser.IsAdmin = True Then
            IsAdministrator = 1
        Else
            IsAdministrator = 0
        End If

        SLoginSQLstr = "INSERT INTO Login([User],pwd,isadmin) VALUES " & _
        "('" & AddUser.UserID & "','" & AddUser.Password & "','" & IsAdministrator & "')"
        SUserSQLstr = "INSERT INTO UserInfo([UserID],TrueName,Gender,Age,Relation,Other) " & _
        "VALUES('" & NewUserInfo.UserID & "','" & NewUserInfo.TName & "','" & Sexual & "'," & _
        "'" & NewUserInfo.Age & "','" & NewUserInfo.Relation & "','" & NewUserInfo.OtherInfo & "')"
        '设置添加新字段的SQL语句
        Call SaveToTable(SLoginSQLstr)
        '保存到登录表单
        Call SaveToTable(SUserSQLstr)
        '保存到用户信息表单

        Call GetUserInfo()
        Call ShowUserInfo(0)

        Call SetReadOnly(True)
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button4.Click
        Call DeleteTable()
        Call GetUserInfo()
        Call ShowUserInfo(0)
        '删除当前行,并重新读取表单,获取最新数据
    End Sub

    Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Me.Close()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button2.Click
        Call SetReadOnly(False)
        Call Clear()

        '退出
    End Sub

    Public Function DeleteTable()
        Dim myDR As DataRow
        Dim AddUser As LoginUser
        AddUser.UserID = Me.TextBox1.Text
        If Me.TextBox1.Text = "" Then
            Exit Function
        End If
        '如果当前没有用户则拒绝删除
        Dim key(1) As DataColumn
        key(0) = DS.Tables.Item(0).Columns("User")
        DS.Tables.Item(0).PrimaryKey = key
        '给表单设置主键
        myDR = DS.Tables.Item(0).Rows.Find(AddUser.UserID)
        '使用Find方法寻找当前行
        myDR.Delete()
        '删除当前行
        Dim LoginSQLstr, UserSQLstr As String
        LoginSQLstr = "DELETE FROM Login WHERE (USER = '" & AddUser.UserID & "')"
        UserSQLstr = "DELETE FROM UserInfo WHERE (USERID = '" & AddUser.UserID & "')"
        '定义并设置删除当前行的SQL语句,并保存到数据库中
        Call SaveToTable(LoginSQLstr)
        Call SaveToTable(UserSQLstr)
        Call Clear()
        '调用保存数据的函数把改动保存到数据库中
    End Function

    Private Sub Button3_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button3.Click
        Call SetReadOnly(False)
        Dim myDR As DataRow
        Dim AddUser As LoginUser
        Dim AddUserInfo As UserInfo
        AddUser.UserID = Me.TextBox1.Text
        If Me.TextBox1.Text = "" Then
            MessageBox.Show("", _
            "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            Exit Sub
        End If
        Dim key(1) As DataColumn
        key(0) = DS.Tables.Item(0).Columns("User")
        DS.Tables.Item(0).PrimaryKey = key
        myDR = DS.Tables.Item(0).Rows.Find(AddUser.UserID)
        myDR.Item(0) = Me.TextBox1.Text
        myDR.Item(1) = Me.TextBox2.Text
        myDR.Item(2) = Me.CheckBox1.Checked
        myDR.Item(3) = Me.TextBox3.Text
        myDR.Item(4) = Me.TextBox4.Text
        myDR.Item(5) = CBool(1 - Me.ComboBox1.SelectedIndex)
        myDR.Item(6) = Me.TextBox5.Text
        myDR.Item(7) = Me.TextBox6.Text
        AddUser.UserID = Me.TextBox1.Text
        AddUser.Password = Me.TextBox2.Text
        AddUser.IsAdmin = Me.CheckBox1.Checked
        AddUserInfo.UserID = AddUser.UserID
        AddUserInfo.TName = Me.TextBox3.Text
        AddUserInfo.Age = CInt(Me.TextBox4.Text)
        AddUserInfo.Relation = Me.TextBox5.Text
        AddUserInfo.OtherInfo = Me.TextBox6.Text
        AddUserInfo.Gender = CBool(1 - Me.ComboBox1.SelectedIndex)
        Dim LoginSQLstr, UserSQLstr As String
        LoginSQLstr = "UPDATE Login SET Pwd = '" & AddUser.Password & "'," & _
        " IsAdmin = '" & AddUser.IsAdmin & " ' WHERE (USER = '" & AddUser.UserID & "')"
        UserSQLstr = "UPDATE UserInfo SET TrueName = '" & AddUserInfo.TName & "', " & _
        "Gender = '" & AddUserInfo.Gender & " ',Age = '" & AddUserInfo.Age & "', " & _
        "Relation = '" & AddUserInfo.Relation & " ',Other = '" & AddUserInfo.OtherInfo & "' " & _
        "WHERE (USERID = '" & AddUserInfo.UserID & "')"
        Call SaveToTable(LoginSQLstr)
        Call SaveToTable(UserSQLstr)
    End Sub

    Public Function SetReadOnly(ByVal IsReadOnly As Boolean)
        Me.TextBox2.ReadOnly = IsReadOnly
        Me.TextBox3.ReadOnly = IsReadOnly : Me.TextBox4.ReadOnly = IsReadOnly
        Me.TextBox5.ReadOnly = IsReadOnly : Me.TextBox6.ReadOnly = IsReadOnly
        Me.CheckBox1.Enabled = Not IsReadOnly
        Me.ComboBox1.Enabled = Not IsReadOnly
        '设置控件的只读或者不可用属性,防止无意或恶意改动
    End Function

    Private Sub Button6_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button6.Click
        Me.Close()
    End Sub

    Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, _
                                         ByVal e As System.EventArgs) _
                                         Handles CheckBox2.CheckedChanged
        Call SetReadOnly(Me.CheckBox2.Checked)
    End Sub

End Class

⌨️ 快捷键说明

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