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

📄 frm_issuereturnbook.vb

📁 用vb.net+SQL做的,本系统实现了图书管理系统应该具有的特色
💻 VB
📖 第 1 页 / 共 3 页
字号:
        MyCommand.dispose()
    End Sub
    Sub loadReaderDetails()
        MyConnection.Open()
        MyCommand = New OleDbCommand("SELECT * FROM ReaderDetails WHERE ReaderNo = '" & TxtReaderNo.Text & "'", MyConnection)
        Try
            MyReader = MyCommand.ExecuteReader()
            While MyReader.Read
                TxtReaderName.Text = MyReader("ReaderName").ToString
                TxtAddress.Text = MyReader("Address").ToString
                TxtTag.Text = MyReader("IssueTag").ToString
                TxtIssuedTag.Text = MyReader("IssueTagUsed").ToString
            End While
        Catch c As Exception
            MsgBox("Error Message: Exception Thrown Please Enter a Valid Reader Number" + c.ToString, MsgBoxStyle.Critical, "图书馆管理系统")
        End Try
        MyConnection.Close()
        MyReader.Close()
        MyCommand.dispose()
    End Sub
    Function checkIfBookAlreadyExists() As Boolean
        MyConnection.Open()
        MyCommand = New OleDbCommand("SELECT * FROM BookDetails WHERE SN ='" & TxtSN.Text & "'", MyConnection)
        Dim TempString As String
        Try
            MyReader = MyCommand.ExecuteReader()
            While MyReader.Read
                TempString = MyReader("SN")
            End While
            MyConnection.Close()
            MyReader.Close()
            MyCommand.dispose()
        Catch c As Exception
            MsgBox("错误信息:" + c.ToString, MsgBoxStyle.Critical, "图书馆管理系统")
        End Try
        If TxtSN.Text = TempString Then
            Return True
        Else
            If TxtSN.Text <> TempString Then
                Return False
            End If
        End If
    End Function
    Function checkIfReaderAlreadyExists() As Boolean
        MyConnection.Open()
        MyCommand = New OleDbCommand("SELECT * FROM ReaderDetails WHERE ReaderNo ='" & TxtReaderNo.Text & "'", MyConnection)
        Try
            MyReader = MyCommand.ExecuteReader()
            While MyReader.Read
                TextBox15.Text = MyReader("ReaderNo")
            End While
            MyConnection.Close()
            MyReader.Close()
            MyCommand.dispose()
        Catch c As Exception
            MsgBox("Error Message:" + c.ToString, MsgBoxStyle.Critical, "图书馆管理系统")
        End Try
        If TxtReaderNo.Text = TextBox15.Text Then
            Return True
        Else
            If TxtReaderNo.Text <> TextBox15.Text Then
                Return False
            End If
        End If
    End Function

    Private Sub frm_IssueReturnBook_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        MyConnection.Open()
        MyCommand = New OleDbCommand("SELECT * FROM Charges", MyConnection)
        Try
            MyReader = MyCommand.ExecuteReader()
            While MyReader.Read
                ComboChargeType.Items.Add(MyReader("Desc"))
            End While
        Catch c As Exception
            MsgBox("错误信息:" + c.ToString, MsgBoxStyle.Critical, "图书馆管理系统")
        End Try
        MyConnection.Close()
        MyReader.Close()
        MyCommand.dispose()
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Me.Close()
    End Sub
    Sub clearFields()
        TxtSN.Text = ""
        TxtISBN.Text = ""
        TxtBookName.Text = ""
        TxtAuthorName.Text = ""
        TxtStatus.Text = ""
        TxtReaderNo.Text = ""
        TxtReaderName.Text = ""
        TxtAddress.Text = ""
        TxtTag.Text = ""
        TxtIssuedTag.Text = ""
        TxtIssueNo.Text = ""
        TxtIssueDate.Text = ""
        TxtReturnDate.Text = ""
        ComboChargeType.Text = ""
    End Sub
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        clearFields()
        TxtSN.Focus()
    End Sub
    Private Sub TxtIssueNo_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtIssueNo.KeyPress
        Dim strchar As String
        strchar = e.KeyChar
        Select Case strchar
            Case ChrW(System.Windows.Forms.Keys.Enter)
                TxtIssueDate.Text = System.DateTime.Now.ToShortDateString
                ComboChargeType.Focus()
            Case Else
        End Select
    End Sub

    Function getDueDate(ByVal myOption As String) As String
        Select Case myOption
            Case "超过1天罚款3元"
                Return Date.Now.AddDays(1).ToShortDateString
            Case "超过7天罚款18元"
                Return Date.Now.AddDays(7).ToShortDateString
            Case "超过14天罚款50元"
                Return Date.Now.AddDays(14).ToShortDateString
        End Select
    End Function
    Private Sub KeyPress_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ComboChargeType.KeyPress
        Dim strChar As String
        strChar = e.KeyChar
        Select Case strChar
            Case ChrW(System.Windows.Forms.Keys.Enter)
                TxtReturnDate.Text = getDueDate(ComboChargeType.SelectedItem)
                BtnIssue.Focus()
            Case Else
        End Select
    End Sub
    Sub issueBook()
        MyConnection.Open()
        MyCommand = New OleDbCommand("INSERT INTO IssueBook VALUES('" & TxtIssueNo.Text & "','" & TxtSN.Text & "', '" & TxtBookName.Text & "','" & TxtAuthorName.Text & "','" & TxtReaderNo.Text & "','" & TxtReaderName.Text & "','" & TxtIssueDate.Text & "','" & TxtReturnDate.Text & "','" & ComboChargeType.Text & "')", MyConnection)
        MyCommand.ExecuteNonQuery()
        MyConnection.Close()
        MyCommand.dispose()
    End Sub
    '  Sub addIntoReaderHistory()
    ' MyConnection.Open()
    '   MyCommand = New OleDbCommand("INSERT INTO ReaderHistory VALUES('" & TxtReaderNo.Text & "','" & TxtSN.Text & "', '" & TxtIssueDate.Text & "','" & TxtReturnDate.Text & "','" & TxtStatus.Text & "')", MyConnection)
    ' MyCommand.ExecuteNonQuery()
    '   MyConnection.Close()
    '    MyCommand.dispose()
    ' End Sub
    Sub updateReaderIssueTag()
        Dim CurrentIssueTag As String
        Dim CurrentIssueTagUsed As String
        Dim itag As Integer
        Dim itagused As Integer
        CurrentIssueTag = getCurrentReaderIssueTag()
        CurrentIssueTagUsed = getCurrentReaderTagUsed()
        itag = CInt(CurrentIssueTag)
        itagused = CInt(CurrentIssueTagUsed)
        itag = itag - 1
        itagused = itagused + 1
        CurrentIssueTag = itag.ToString
        CurrentIssueTagUsed = itagused.ToString
        MyConnection.Open()
        MyCommand = New OleDbCommand("UPDATE ReaderDetails SET IssueTag ='" & CurrentIssueTag & "',IssueTagUsed = '" & CurrentIssueTagUsed & "' WHERE ReaderNo = '" & TxtReaderNo.Text & "'", MyConnection)
        Try
            MyCommand.ExecuteNonQuery()
        Catch c As Exception
            MsgBox(c.ToString)
        End Try
        MyConnection.Close()
        MyCommand.dispose()
    End Sub
    Sub updateBookStatus()
        Dim myStatus As String
        myStatus = "被借"
        MyConnection.Open()
        MyCommand = New OleDbCommand("UPDATE BookDetails SET BookStatus ='" & myStatus & "' WHERE SN = '" & TxtSN.Text & "'", MyConnection)
        Try
            MyCommand.ExecuteNonQuery()
        Catch c As Exception
            MsgBox(c.ToString)
        End Try
        MyConnection.Close()
        MyCommand.dispose()
    End Sub
    Function getCurrentReaderIssueTag() As String
        Dim myTag As String
        MyConnection.Open()
        MyCommand = New OleDbCommand("SELECT * FROM ReaderDetails WHERE ReaderNo = '" & TxtReaderNo.Text & "'", MyConnection)
        MyReader = MyCommand.ExecuteReader()
        While MyReader.Read
            myTag = MyReader("IssueTag")
        End While
        MyConnection.Close()
        MyReader.Close()
        MyCommand.dispose()
        Return myTag
    End Function
    Function getCurrentReaderTagUsed() As String
        Dim myTag As String
        MyConnection.Open()
        MyCommand = New OleDbCommand("SELECT * FROM ReaderDetails WHERE ReaderNo = '" & TxtReaderNo.Text & "'", MyConnection)
        MyReader = MyCommand.ExecuteReader()
        While MyReader.Read
            myTag = MyReader("IssueTagUsed")
        End While
        MyConnection.Close()
        MyReader.Close()
        MyCommand.dispose()
        Return myTag
    End Function
    Private Sub BtnIssue_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnIssue.Click
        If checkStatus() = False Then
            MsgBox("该书已被借阅, 请重新选择!", MsgBoxStyle.Information, "图书馆管理系统")
        Else
            If checkIssueTag() = False Then
                MsgBox("已超过最大借书量!", MsgBoxStyle.Information, "图书馆管理系统")
            Else
                If checkStatus() = True And checkIssueTag() = True Then
                    Try
                        issueBook()
                        updateReaderIssueTag()
                        updateBookStatus()
                        MsgBox("成功借阅", MsgBoxStyle.Information, "图书馆管理系统")
                    Catch c As Exception
                        MsgBox(c.ToString)
                    End Try
                End If
            End If
        End If
    End Sub
    Function checkStatus() As Boolean
        Dim oStatus As String
        MyConnection.Open()
        MyCommand = New OleDbCommand("SELECT * FROM BookDetails WHERE SN ='" & TxtSN.Text & "'", MyConnection)
        MyReader = MyCommand.ExecuteReader()
        While MyReader.Read
            oStatus = MyReader("BookStatus")
        End While
        MyConnection.Close()
        MyReader.Close()
        MyCommand.dispose()
        If oStatus = "正常" Then
            Return True
        Else
            If oStatus = "被借" Then
                Return False
            End If
        End If
    End Function

    Function checkIssueTag() As Boolean
        Dim oTag As String
        MyConnection.Open()
        MyCommand = New OleDbCommand("SELECT * FROM ReaderDetails WHERE ReaderNo ='" & TxtReaderNo.Text & "'", MyConnection)
        MyReader = MyCommand.ExecuteReader()
        While MyReader.Read
            oTag = MyReader("IssueTagUsed")
        End While
        MyConnection.Close()
        MyReader.Close()
        MyCommand.dispose()
        If oTag = "3" Then
            Return False
        Else
            If oTag <> "3" Then
                Return True
            End If
        End If
    End Function

    Private Sub BtnPrintReceipt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPrintReceipt.Click
        Dim frm As New frm_ReceiptViewer
        frm.Show()
    End Sub





End Class

⌨️ 快捷键说明

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