Dim strTitle As String = "人事管理系统"
Dim myQuery As String
Dim intCmbCnt As Integer
Dim strId As String
Private Sub Initialize()
Me.txtName.Text = ""
Me.txtPassword.Text = ""
Me.cmbPermission.SelectedText = ""
Me.cmbPermission.Text = ""
End Sub
Private Sub Permission_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Initialize()
lstsetting()
Me.txtName.Enabled = False
End Sub
Private Sub lstsetting()
Dim myclsDB As New clsDB
Dim i As Integer
Dim stritem As String
Dim item As ListViewItem
Dim subitem1 As ListViewItem.ListViewSubItem
Dim subitem2 As ListViewItem.ListViewSubItem
Dim subitem3 As ListViewItem.ListViewSubItem
lsvResult.Items.Clear()
myQuery = "select Id,UserName,UserPwd,Class from Operator order by Id"
If myclsDB.DB(myQuery) = False Then
Exit Sub
Else
For i = 0 To myclsDB.dataset.Tables(0).Rows.Count - 1
With myclsDB.dataset.Tables(0)
stritem = .Rows(i).Item(0)
item = New ListViewItem(stritem)
subitem1 = New ListViewItem.ListViewSubItem(item, .Rows(i).Item(1))
subitem2 = New ListViewItem.ListViewSubItem(item, .Rows(i).Item(2))
subitem3 = New ListViewItem.ListViewSubItem(item, .Rows(i).Item(3))
item.SubItems.Add(subitem1)
item.SubItems.Add(subitem2)
item.SubItems.Add(subitem3)
lsvResult.Items.Add(item)
End With
Next
End If
End Sub
'鼠标点击listview控件
Private Sub lsvResult_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lsvResult.MouseUp
If Me.lsvResult.FocusedItem Is Nothing = False Then
Me.chbNew.Checked = False
Me.txtName.Text = Me.lsvResult.FocusedItem.SubItems(1).Text.ToString
Me.txtPassword.Text = Me.lsvResult.FocusedItem.SubItems(3).Text.ToString
Me.cmbPermission.SelectedIndex = CInt(Me.lsvResult.FocusedItem.SubItems(2).Text.ToString)
strId = Me.lsvResult.FocusedItem.Text.ToString
End If
End Sub
'退出程序
Private Sub btnEnd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnd.Click
Me.Close()
End Sub
'删除模块
Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
deleteRecord()
End Sub
'删除数据
Private Sub deleteRecord()
Dim myclsdb As New clsDB
With Me.lsvResult
If Me.lsvResult.FocusedItem Is Nothing = False Then
If MsgBox("确实要删除该用户吗?", MsgBoxStyle.Exclamation Or MsgBoxStyle.OKCancel, strTitle) = MsgBoxResult.Cancel Then
Exit Sub
Else
myQuery = "delete from Operator where Id=" & CInt(.FocusedItem.Text.ToString)
If myclsdb.DB(myQuery) = False Then
Exit Sub
Else
lstsetting()
Initialize()
End If
End If
Else
MsgBox("请指定要删除的对象!!", MsgBoxStyle.Exclamation, strTitle)
End If
End With
End Sub
'添加数据
Private Sub insertRecord()
If Me.chbNew.Checked = True And Me.check = True Then
Dim myclsdb As New clsDB
Dim intclass As Integer
Select Case Me.cmbPermission.SelectedIndex
Case 0
intclass = 0
Case 1
intclass = 1
Case 2
intclass = 2
End Select
myQuery = "insert into Operator(UserName,UserPwd,Class) Values('" & Me.txtName.Text.ToString & "','" & Me.txtPassword.Text.ToString & "'," & intclass & ")"
If myclsdb.DB(myQuery) = False Then
Exit Sub
Else
Initialize()
Call lstsetting()
End If
End If
End Sub
'更新数据
Private Sub updateRecord()
If Me.checkupdate = True Then
Dim myclsdb As New clsDB
Dim intclass As Integer
Select Case Me.cmbPermission.SelectedIndex
Case 0
intclass = 0
Case 1
intclass = 1
Case 2
intclass = 2
End Select
myQuery = "update Operator set UserName='" & Me.txtName.Text.Trim() & "',UserPwd='" & Me.txtPassword.Text.Trim() & "',Class=" & intclass & "where Id=" & CInt(strId)
If myclsdb.DB(myQuery) = False Then
Exit Sub
Else
Initialize()
lstsetting()
End If
End If
End Sub
'检查是更新数据还是添加数据
Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
If Me.chbNew.Checked = True Then
insertRecord()
Else
updateRecord()
End If
End Sub
'编辑现有数据
Private Function checkupdate() As Boolean
If Me.txtName.Text = "" Then
MsgBox("请选择用户!!", MsgBoxStyle.Exclamation, strTitle)
Me.txtName.Focus()
Return False
End If
If Me.txtPassword.Text = "" Then
MsgBox("请输入密码!!", MsgBoxStyle.Exclamation, strTitle)
Me.txtPassword.Focus()
Return False
End If
If Me.cmbPermission.Text = "" Then
MsgBox("请选择权限!!", MsgBoxStyle.Exclamation, strTitle)
Me.txtPassword.Focus()
Return False
End If
Return True
End Function
'检查输入是否齐全
Private Function check() As Boolean
If Me.txtName.Text = "" Then
MsgBox("请选择用户!!", MsgBoxStyle.Exclamation, strTitle)
Me.txtName.Focus()
Return False
End If
If Me.txtPassword.Text = "" Then
MsgBox("请输入密码!!", MsgBoxStyle.Exclamation, strTitle)
Me.txtPassword.Focus()
Return False
End If
If Me.cmbPermission.Text = "" Then
MsgBox("请选择权限!!", MsgBoxStyle.Exclamation, strTitle)
Me.txtPassword.Focus()
Return False
End If
Dim mycls As New clsDB
myQuery = "select * from Operator where UserName ='" & Me.txtName.Text.ToString & "'"
If mycls.DB(myQuery) = True Then
If mycls.dataset.Tables(0).Rows.Count > 0 Then
MsgBox("该用户名已经存在!", MsgBoxStyle.Exclamation, strTitle)
Return False
Else
Return True
End If
Else
Return False
End If
End Function
'checkbox选择改变时其他控件的变化
Private Sub chbNew_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles chbNew.CheckedChanged
If Me.chbNew.Checked = True Then
Me.Initialize()
Me.txtName.Enabled = True
Me.txtName.Focus()
Else
Me.txtName.Enabled = False
End If
End Sub
Private Sub Control_keydown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtName.KeyDown, txtPassword.KeyDown, btnOK.KeyDown, btnEnd.KeyDown, cmbPermission.KeyDown, chbNew.KeyDown
Dim W_Sendkeys As SendKeys
If e.KeyCode = Keys.Up Or e.KeyCode = Keys.Down Then
e.Handled = True
End If
Select Case e.KeyCode
Case Keys.Return
W_Sendkeys.Send("{TAB}")
Case Keys.Down
W_Sendkeys.Send("{TAB}")
Case Keys.Up
W_Sendkeys.Send("+{TAB}")
End Select
End Sub
上边是小弟查考书上的代码编出来的一个程序
但是不知道为什么运行到上边红色字的那段代码之后就出错啦!!
报错的信息是这样的!
未处理的“System.IndexOutOfRangeException”类型的异常出现在 system.data.dll 中。
其他信息: 无法找到列 3。
请高手教我一下为什么怎样的!