📄 employee.vb
字号:
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 + -