📄 readeredit.vb
字号:
Me.btnDelete.Name = "btnDelete"
Me.btnDelete.Size = New System.Drawing.Size(75, 25)
Me.btnDelete.TabIndex = 30
Me.btnDelete.Text = "删除"
'
'btnExit
'
Me.btnExit.Location = New System.Drawing.Point(240, 288)
Me.btnExit.Name = "btnExit"
Me.btnExit.Size = New System.Drawing.Size(75, 25)
Me.btnExit.TabIndex = 29
Me.btnExit.Text = "退出"
'
'btnUpdate
'
Me.btnUpdate.Location = New System.Drawing.Point(48, 288)
Me.btnUpdate.Name = "btnUpdate"
Me.btnUpdate.Size = New System.Drawing.Size(75, 25)
Me.btnUpdate.TabIndex = 28
Me.btnUpdate.Text = "更新"
'
'ReaderEdit
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.ClientSize = New System.Drawing.Size(368, 325)
Me.Controls.Add(Me.btnDelete)
Me.Controls.Add(Me.btnExit)
Me.Controls.Add(Me.btnUpdate)
Me.Controls.Add(Me.GroupBox2)
Me.Controls.Add(Me.GroupBox1)
Me.Name = "ReaderEdit"
Me.Text = "读者信息维护"
Me.GroupBox1.ResumeLayout(False)
Me.GroupBox2.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
#End Region
'定义变量curID,用于记录当前人员ID
Dim curID As Long
'在对读者信息进行维护以前,首先要查询出要维护的读者
Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
'判断所查询的读者姓名是否为空
If txtFindName.Text.Trim = "" Then
'若为空,给出错误信息,并退出
ErrorMSG("所查询姓名不能为空")
Exit Sub
End If
'getField函数可以根据某数据表中某已知字段,得到另一指定字段的信息。传入的参数依次为:需要的字段;查询条件;表名。详细信息请参见数据库操作字段
'调用getField函数,得到当前人员ID
Dim strID As String
strID = getField("ID", "Name='" & txtFindName.Text.Trim & "'", "ReaderInfo")
If strID = "" Then
'若所查询人员不存在,则给出提示信息,清空输入框,并设置控件不可用
ErrorMSG("所查询人员不存在")
ClearData()
setEnabled(False)
Else
curID = CLng(strID)
'得到当前人员ID后,填充人员信息
fullInfo()
End If
End Sub
Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
'判断数据是否合法
If Not checkData() Then
'若不合法,则退出
Exit Sub
End If
Dim strSQL As String
Dim ret As Boolean
'生成更新记录的SQL语句
strSQL = "Update ReaderInfo set "
strSQL &= "[Name] ='" & txtName.Text.Trim & "',"
strSQL &= "[Gender] ='" & cmbGender.Text.Trim & "',"
strSQL &= "[MaxNumber] = '" & txtMaxNum.Text.Trim & "',"
strSQL &= "[MaxTime] = '" & txtMaxTime.Text.Trim & "' "
strSQL &= "where [ID]=" & curID
'执行SQL语句,更新数据库中数据
ret = DBManager.executeNonQuery(strSQL)
If ret Then
'若操作成功,给出提示信息
InfoMSG("读者信息更新成功!")
Else
'若操作不成功,给出错误信息
ErrorMSG("读者信息更新失败!")
End If
End Sub
Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
Dim strSQL As String
Dim ret As Boolean
'生成删除记录的SQL语句
strSQL = "Delete from ReaderInfo where ID=" & curID
'执行SQL语句,完成删除操作
ret = DBManager.executeNonQuery(strSQL)
If ret Then
'如果删除成功,则提示成功信息并重新加载数据
InfoMSG("读者信息删除成功!")
ClearData()
Else
'如果删除失败,提示失败信息
ErrorMSG("读者信息删除失败!")
End If
End Sub
Private Sub ClearData()
txtName.Text = ""
cmbGender.Text = ""
txtMaxNum.Text = ""
txtMaxTime.Text = ""
End Sub
'根据读者ID取出读者信息
Private Sub fullInfo()
Dim curReader As DataSet
Dim strSQL As String
'生成SQL语句
strSQL = " select ID,Name, Gender, MaxNumber,MaxTime from ReaderInfo"
strSQL = strSQL & " where ID=" & curID
'执行SQL语句,取出结果集
curReader = DBManager.executeSelectQuery(strSQL, "ReaderInfo")
'如果当前人员不存在,则给出提示信息
If curReader Is Nothing OrElse curReader.Tables(0).Rows.Count = 0 Then
InfoMSG("用户" + txtFindName.Text.Trim + "不存在!")
Exit Sub
End If
'填充人员信息
With curReader.Tables("ReaderInfo").Rows(0)
curID = .Item("ID") & ""
'姓名
txtName.Text = .Item("Name") & ""
'性别
cmbGender.Text = .Item("Gender") & ""
'最大借阅册数
txtMaxNum.Text = .Item("MaxNumber") & ""
'最大借阅天数
txtMaxTime.Text = .Item("MaxTime") & ""
End With
'设置信息输入框和操作按钮可用
setEnabled(True)
End Sub
Private Sub ReaderEdit_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在查询模块中,查询出读者后可对其进行编辑,此时生成ReaderEdit类实例时会传入参数:读者ID,此时窗体加载时就要填充读者信息。详细信息请参见读者查询模块
'窗体加载时,若当前读者ID不为0,则填充读者信息
If curID <> 0 Then
txtFindName.Text = getField("Name", "ID=" & curID, "ReaderInfo")
fullInfo()
'设置信息输入框和操作按钮可用
setEnabled(True)
Else
'人员为空时,设置信息输入框和操作按钮不可用
setEnabled(False)
End If
End Sub
Private Function checkData() As Boolean
'判断读者姓名是否为空
If txtName.Text.Trim = "" Then
ErrorMSG("读者姓名不允许为空!")
Return False
End If
'判断读者性别是否为空
If cmbGender.Text.Trim = "" Then
ErrorMSG("读者性别不允许为空!")
Return False
End If
'判断最大借阅册数是否为空
If txtMaxNum.Text.Trim = "" Then
ErrorMSG("最大借阅册数不允许为空!")
Return False
Else
'判断最大借阅册数是否为数字
If Not IsNumeric(txtMaxNum.Text.Trim) Then
ErrorMSG("最大借阅册数必须为数字!")
Return False
End If
End If
'判断最大借阅天数是否为空
If txtMaxTime.Text.Trim = "" Then
ErrorMSG("最大借阅天数不允许为空!")
Return False
Else
'判断最大借阅天数是否为数字
If Not IsNumeric(txtMaxTime.Text.Trim) Then
ErrorMSG("最大借阅天数必须为数字!")
Return False
End If
End If
Return True
End Function
'设置控件的可用性
Private Sub setEnabled(ByVal enable As Boolean)
btnUpdate.Enabled = enable
btnDelete.Enabled = enable
txtName.Enabled = enable
cmbGender.Enabled = enable
txtMaxNum.Enabled = enable
txtMaxTime.Enabled = enable
End Sub
Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
Me.Close()
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -