📄 main.vb
字号:
End Try
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''读取学生信息,读取学生个人信息
sqlstr = "select * from studentinfo where id=" & stuID & ""
Try
objDS = GetData(sqlstr)
user_name.Text = objDS.Tables(0).Rows(0)("name").ToString
user_learnid.Text = objDS.Tables(0).Rows(0)("learnid").ToString
user_class.Text = showclassname(objDS.Tables(0).Rows(0)("class"))
user_phone.Text = objDS.Tables(0).Rows(0)("phone").ToString
user_logins.Text = objDS.Tables(0).Rows(0)("logins").ToString
user_lastlogin.Text = objDS.Tables(0).Rows(0)("lastlogin").ToString
If objDS.Tables(0).Rows(0)("islock") = 1 Then islock = True
Catch
MsgBox("读取学生数据错误。", MsgBoxStyle.Information + MsgBoxStyle.OKOnly, "错误")
End Try
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''读取图书馆公告信息
sqlstr = "select * from board order by addtime" '搜索全部公告记录
Try
objDS = GetData(sqlstr)
For i = 0 To objDS.Tables(0).Rows.Count - 1
dboard(i) = objDS.Tables(0).Rows(i)("content").ToString + "(" + changetime(objDS.Tables(0).Rows(i)("addtime").ToString) + ")"
Next
Catch
MsgBox("读取图书馆公告信息错误。", MsgBoxStyle.Information + MsgBoxStyle.OKOnly, "错误")
End Try
board.Text = " 请遵守图书馆管理规定。"
Timer1.Interval = boardflash
Timer1.Start() '公告刷新开始
Call readlandbook()
End Sub
Private Sub ShowData(ByVal rt As Integer)
Dim li As New ListViewItem
li.SubItems.Clear()
li.SubItems(0).Text = objDS.Tables(0).Rows(rt)("id").ToString
li.SubItems.Add(objDS.Tables(0).Rows(rt)("name").ToString)
li.SubItems.Add(objDS.Tables(0).Rows(rt)("author").ToString)
li.SubItems.Add(showclassify(objDS.Tables(0).Rows(rt)("classify")))
li.SubItems.Add(objDS.Tables(0).Rows(rt)("bookconcern").ToString)
li.SubItems.Add(changetime(objDS.Tables(0).Rows(rt)("addtime").ToString))
li.SubItems.Add(objDS.Tables(0).Rows(rt)("amount").ToString)
li.SubItems.Add(objDS.Tables(0).Rows(rt)("remain").ToString)
li.SubItems.Add(objDS.Tables(0).Rows(rt)("loandegree").ToString)
list_book.Items.Add(li) '插入到 list_book
End Sub
Function showclassname(ByVal classid) As String
sqlstr2 = "select * from class where id=" & classid & ""
objDS2 = GetData(sqlstr2)
If objDS2.Tables(0).Rows.Count > 0 Then
Return objDS2.Tables(0).Rows(0)("name").ToString
Else
Return "不详"
End If
End Function
Function changetime(ByVal time As String)
Return Mid(time, 1, InStr(time, " ") - 1) '截取空格前的数据
End Function
Sub readlandbook()
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''读取学生借阅图书信息
Dim item As String, sitem() As String, j As Integer
sqlstr = "select * from landinfo where studentid=" & stuID & " and hadreturn= 0"
Try
landinfo_info.Items.Clear()
objDS = GetData(sqlstr)
If objDS.Tables(0).Rows.Count <> 0 Then
hadloadnum = objDS.Tables(0).Rows.Count
landinfo_hadnum.Text = hadloadnum.ToString & " 本" '已借图书数目
landinfo_cannum.Text = (canlandnum - hadloadnum).ToString & " 本"
If canlandnum - hadloadnum <= 0 Then
btland.Enabled = False '如果已经不能再借,按钮"借阅"不可按
Menu_land.Enabled = False
Else
btland.Enabled = True
Menu_land.Enabled = True
End If
For j = 0 To objDS.Tables(0).Rows.Count - 1
sqlstr2 = "select * from bookinfo where id=" & objDS.Tables(0).Rows(j)("bookid").ToString & "" '将图书自动编号转化为图书名,并显示在Checkedlistbox中
objDS2 = GetData(sqlstr2)
If objDS2.Tables(0).Rows.Count > 0 Then
landinfo_info.Items.Add(objDS2.Tables(0).Rows(0)("name").ToString & " ," & objDS2.Tables(0).Rows(0)("id").ToString, False) '将书的ID存储在书名中,以便后面读取更新数据库
Else
landinfo_info.Items.Add("不详 ,0")
End If
Next
Else
landinfo_hadnum.Text = "0 本" '已借图书数目
landinfo_cannum.Text = canlandnum.ToString & " 本" '可以借阅图书的数目
btland.Enabled = True
Menu_land.Enabled = True
End If
Catch
MsgBox("图书借阅错误。", MsgBoxStyle.Information + MsgBoxStyle.OKOnly, "错误")
End Try
End Sub
Function showclassify(ByVal classifyid) As String
sqlstr2 = "select * from classify where id=" & classifyid & ""
objDS2 = GetData(sqlstr2)
If objDS2.Tables(0).Rows.Count > 0 Then
Return objDS2.Tables(0).Rows(0)("name").ToString
Else
Return "不详"
End If
End Function
Function hadlandnum()
Dim sqlstrnum As String, objDSnum As DataSet
sqlstrnum = "select * from landinfo where studentid=" & stuID & " and hadreturn=0"
objDSnum = GetData(sqlstrnum)
Return objDSnum.Tables(0).Rows.Count
End Function
Private Sub list_dy_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles list_dy.SelectedIndexChanged
Select Case list_dy.Text
Case ""
listby = "name"
Case "编号"
listby = "id"
Case "书名"
listby = "name"
Case "分类"
listby = "classify"
Case "作者"
listby = "author"
Case "出版社"
listby = "bookconcern"
Case "进馆时间"
listby = "addtime"
Case "总数量"
listby = "amount"
Case "剩余数量"
listby = "remain"
Case "借阅次数"
listby = "loandegree"
End Select
showlist("system")
End Sub
Function showlist(ByVal sf As String) '固定查询列表函数
If sf = "system" Then
If listby = "" Then listby = "name"
sqlstr = "select * from bookinfo order by " + listby + " " + condition + ""
Else
If listall <> "classify" Then
sqlstr = "select * from bookinfo where " + listall + " LIKE '%" + filter2(list_keyword.Text) + "%'"
Else '如果以分类查询
Dim m As Integer
sqlstr2 = "select id from classify where name LIKE '%" + filter2(list_keyword.Text) + "%'"
objDS2 = GetData(sqlstr2)
For m = 0 To objDS2.Tables(0).Rows.Count - 1
sqlstr = "select * from bookinfo where classify = " & objDS2.Tables(0).Rows(m)("id") & ""
Try
objDS = GetData(sqlstr)
list_book.Items.Clear()
For i = 0 To objDS.Tables(0).Rows.Count - 1
Call ShowData(i)
Next
Catch
MsgBox("图书读取错误。", MsgBoxStyle.Information + MsgBoxStyle.OKOnly, "错误")
End Try
Next
End If
End If
Try
objDS = GetData(sqlstr)
list_book.Items.Clear()
For i = 0 To objDS.Tables(0).Rows.Count - 1
Call ShowData(i)
Next
Catch
MsgBox("图书读取错误。", MsgBoxStyle.Information + MsgBoxStyle.OKOnly, "错误")
End Try
End Function
Function filter2(ByVal fString) '输入过滤,过滤掉敏感字符 ' " + &
If fString.length <> 0 Then
fString = Replace(fString, Chr(34), "") '过滤"
fString = Replace(fString, Chr(38), "") '过滤&
fString = Replace(fString, Chr(39), "") '过滤'
fString = Replace(fString, Chr(43), "") '过滤+
fString = Replace(fString, Chr(124), "") '过滤|
list_keyword.Text = fString
Return fString
End If
End Function
Private Sub list_condition_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles list_condition.SelectedIndexChanged
If listby = "" Then listby = "name"
Select Case list_condition.Text
Case ""
Menu_byantitone.Checked = False
Menu_byjust.Checked = True
condition = "DESC"
Case "正序"
Menu_byantitone.Checked = False
Menu_byjust.Checked = True
condition = "DESC"
Case "倒序"
Menu_byantitone.Checked = True
Menu_byjust.Checked = False
condition = ""
End Select
showlist("system")
End Sub
Private Sub search_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles search.Click
Dim cansearch As Boolean
cansearch = True
If listall = "" Then
MessageBox.Show("查询对象不能为空", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)
list_listall.Focus()
cansearch = False
ElseIf list_keyword.Text = "" Then
MessageBox.Show("查询关键字不能为空", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)
list_keyword.Focus()
cansearch = False
End If
If cansearch Then showlist("custom")
End Sub
Private Sub btstop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btstop.Click '公告控制
boardctr()
End Sub
Function boardctr()
If ctrlboard Then
btstop.Text = "继续"
Menu_stop.Text = "继续"
Timer1.Stop()
ctrlboard = False
Else
btstop.Text = "停止"
Menu_stop.Text = "停止"
Timer1.Start()
ctrlboard = True
End If
End Function
Private Sub btland_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btland.Click '点击借阅按钮
If Not islock Then
If canland = 1 Then
land()
Else
MessageBox.Show("图书馆暂时没开放", "公告", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Else
MessageBox.Show("由于你借阅的某本书超过时,被暂时锁定。" & ControlChars.CrLf & "请归还该书,锁定自动解除。", "公告", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End Sub
Function land()
'先判断该书是否已经借阅了,然后判断该书是否有剩余,最后更新数据库
If viewbookid <> 0 Then
Dim canland As Boolean = True
Try
sqlstr = "select * from landinfo where bookid=" & viewbookid & " and studentid=" & stuID & " and hadreturn=0" '判断该书是否已经借阅了
objDS = GetData(sqlstr)
If objDS.Tables(0).Rows.Count > 0 Then
MsgBox("你已借过该书。", MsgBoxStyle.Information + MsgBoxStyle.OKOnly, "错误")
canland = False
End If
sqlstr = "select * from bookinfo where id=" & viewbookid & " and remain<=0" '判断该书是否有剩余
objDS = GetData(sqlstr)
If objDS.Tables(0).Rows.Count > 0 Then
MsgBox("该书没有剩余了。", MsgBoxStyle.Information + MsgBoxStyle.OKOnly, "错误")
canland = False
End If
If canland Then '更新数据库,添加表landinfo,更新表bookinfo,studentinfo
Try
sqlstr = "insert into landinfo(bookid,studentid,shouldreturntime) values(" & viewbookid & "," & stuID & ",'" & DateAdd("y", canlanddays, Now()) & "')"
objDS = GetData(sqlstr) '添加表landinfo
Catch
MessageBox.Show("添加表landinfo行错误", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Try
sqlstr = "update studentinfo set lands=lands+1 where id=" & stuID & ""
GetData(sqlstr) '更新数据库表studentinfo
Catch
MessageBox.Show("更新表studentinfo错误", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Try
sqlstr = "update bookinfo set amount=amount+1,remain=remain-1,loandegree=loandegree+1 where id=" & viewbookid & ""
GetData(sqlstr) '更新数据库表bookinfo
Catch
MessageBox.Show("更新表bookinfo错误", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Call readlandbook()
Mess
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -