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

📄 borrowmanage.vb

📁 vb.net写的图书管理系统,功能完备,能正常使用,可用于二次开发.
💻 VB
📖 第 1 页 / 共 2 页
字号:
        Me.Controls.Add(Me.Label1)
        Me.Controls.Add(Me.lsvBorrow)
        Me.Controls.Add(Me.btnDel)
        Me.Controls.Add(Me.btnAdd)
        Me.Controls.Add(Me.lsvHas)
        Me.Controls.Add(Me.lblMessage)
        Me.Name = "BorrowManage"
        Me.Text = "书籍借出"
        Me.GroupBox1.ResumeLayout(False)
        Me.ResumeLayout(False)

    End Sub

#End Region
    '记录当前读者ID
    Private curReaderID As Long
    Private Sub BorrowManage_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer.Enabled = True
        '窗体装载时由于读者信息为空,所以【借阅】和【还入】按钮均不可用
        btnAdd.Enabled = False
        btnDel.Enabled = False
        '加载可借书籍信息
        fullAvailableBooks()
    End Sub

    Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
        '选中书籍的ISBN
        Dim curBook As Long
        '选中书籍的名称
        Dim curBookName As String
        '借阅时间
        Dim borrowDate As String
        '到期时间
        Dim deadline As String

        '当前人员所能借阅的最长时间
        Dim maxTime As String
        Dim isSuccess As Boolean
        '当前读者为空时,不能借阅
        If curReaderID = 0 Then
            ErrorMSG("当前读者为空,不能借阅!")
            Exit Sub
        End If

        '选中书籍的ID
        curBook = lsvHas.SelectedItems(0).Text
        '根据书籍ID得到书籍名称
        curBookName = getField("Name", "ISBN=" & curBook, "BookInfo")
        '获取当前时间的日期部分
        borrowDate = Now.Date
        '根据当前人员ID得到其最长可借阅时间
        maxTime = CLng(getField("MaxTime", "ID=" & curReaderID, "ReaderInfo"))
        '根据借阅时间和最长可借阅时间计算出到期时间
        deadline = DateAdd(DateInterval.Day, CLng(maxTime), Now.Date)

        Dim strSQL As String
        Dim mydet As DataSet
        '生成SQL语句
        strSQL = "insert into BookBorrow values('" & curBook & "',"
        strSQL = strSQL + "'" + curReaderID.ToString + "',"
        strSQL = strSQL + "'" + borrowDate + "',"
        strSQL = strSQL + "'','" + deadline + "')"
        '执行SQL语句,完成新增借阅信息操作
        isSuccess = DBManager.executeNonQuery(strSQL)
        '如果新增成功
        If isSuccess Then
            '重新加载已借阅书籍信息
            fullBorrowedBooks()
            '重新加载可借阅书籍信息
            fullAvailableBooks()
        Else
            ErrorMSG("新增借阅信息失败!")
            Exit Sub
        End If
        '重新填充可借书

    End Sub

    Private Sub btnDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel.Click
        Dim curBook As Long
        Dim returnDate As String

        Dim isSuccess As Boolean
        '得到选中书籍的ID
        curBook = lsvBorrow.SelectedItems(0).Text
        '设置还入日期
        returnDate = Now.Date

        Dim strSQL As String
        Dim mydet As DataSet
        '执行书籍的还入操作时,只需将数据库中该条记录的还入日期赋值即可
        '生成SQL语句
        strSQL = "update BookBorrow set [ReturnDate]='" & returnDate & "'"
        strSQL = strSQL + "where ISBN=" & curBook & " and ReaderID=" & curReaderID
        '执行SQL语句,完成更新操作
        isSuccess = DBManager.executeNonQuery(strSQL)
        '成功更新
        If isSuccess Then
            '重新加载可借书籍
            fullAvailableBooks()
            '重新加载读者已借书籍
            fullBorrowedBooks()
        Else
            '更新失败给出提示信息
            ErrorMSG("归还书籍失败!")
            Exit Sub
        End If

    End Sub
    Private Sub Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer.Tick
        '显示当前时间
        lblTime.Text = Now
    End Sub

    Public Sub setReader(ByVal readerName As String)
        '用户通过读者选择类窗体选定读者时,将读者姓名显示在查询输入框中
        txtReader.Text = readerName
        '触发【查询】按钮,以加载该读者的借阅信息
        btnSummit_Click(Nothing, Nothing)
    End Sub

    Private Sub btnSelect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelect.Click
        '生成一个新的读者选择类实例
        '传入“Me”参数,以使该实例的myBorrowManage变量指向当前窗体
        Dim selectRead As New ReadSelect(Me)
        '显示
        selectRead.ShowDialog()
    End Sub
    Private Sub btnSummit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSummit.Click
        Dim strSQL As String
        Dim mydet As DataSet
        '判断所查询姓名是否为空
        If txtReader.Text.Trim = "" Then
            '若为空,给出错误信息并退出
            ErrorMSG("姓名不能为空")
            Exit Sub
        End If
        '根据读者姓名查询出读者ID
        '生成SQL语句
        strSQL = "Select ID from ReaderInfo where Name='" & txtReader.Text.Trim & "'"
        '取出结果集
        mydet = DBManager.executeSelectQuery(strSQL, "Readers")
        '如果该读者不存在,给出提示信息,并退出
        If mydet Is Nothing OrElse mydet.Tables(0).Rows.Count = 0 Then
            InfoMSG(txtReader.Text.Trim + "在数据库中不存在!")
            Exit Sub
        Else
            '若存在,取出读者ID
            curReaderID = mydet.Tables(0).Rows(0).Item("ID")
        End If
        '加载该读者借阅信息
        fullBorrowedBooks()

    End Sub
    Private Sub fullAvailableBooks()
        Dim strSQL As String
        Dim mydet As DataSet
        '若某书籍在书籍借阅信息表中存在,并且还入日期为空,说明该书籍已被借出,所以不可借
        '生成SQL语句
        strSQL = "Select  ISBN , NAME , AUTHOR , PRESS , PRICE from BookInfo where ISBN not in (select ISBN from BookBorrow where ReturnDate is null or ReturnDate='') "
        '执行SQL语句,取出结果集
        mydet = DBManager.executeSelectQuery(strSQL, "Readers")
        '如果结果集为空,则退出
        If mydet Is Nothing OrElse mydet.Tables(0).Rows.Count = 0 Then
            Exit Sub
        End If


        Dim item As ListViewItem
        Dim subItem1 As ListViewItem.ListViewSubItem
        Dim subItem2 As ListViewItem.ListViewSubItem
        Dim subItem3 As ListViewItem.ListViewSubItem
        Dim subItem4 As ListViewItem.ListViewSubItem

        Dim i As Integer
        Dim str As String
        '清空显示信息
        lsvHas.Items.Clear()
        '通过循环显示所有可借书籍信息
        For i = 0 To mydet.Tables(0).Rows.Count - 1
            With mydet.Tables(0).Rows(i)
                item = New ListViewItem
                subItem1 = New ListViewItem.ListViewSubItem
                subItem2 = New ListViewItem.ListViewSubItem
                subItem3 = New ListViewItem.ListViewSubItem
                subItem4 = New ListViewItem.ListViewSubItem
                '书籍ISBN
                item.Text = .Item("ISBN") & ""
                '书籍名称
                subItem1.Text = .Item("NAME") & ""
                '作者
                subItem2.Text = .Item("AUTHOR") & ""
                '出版社
                subItem3.Text = .Item("PRESS") & ""
                '价格
                subItem4.Text = .Item("PRICE") & ""
            End With
            item.SubItems.Add(subItem1)
            item.SubItems.Add(subItem2)
            item.SubItems.Add(subItem3)
            item.SubItems.Add(subItem4)
            lsvHas.Items.Add(item)
        Next
    End Sub

    Private Sub fullBorrowedBooks()
        Dim strsql As String
        Dim mydet As New DataSet
        '在书籍借阅信息表中,还入日期为空说明该书籍已被借出
        '生成SQL语句
        strsql = "select ISBN,ReaderID,BorrowDate,ReturnDate,Deadline from BookBorrow where ReaderID= " & curReaderID & " and (ReturnDate is null or ReturnDate='')"
        '执行SQL语句,取出结果集
        mydet = DBManager.executeSelectQuery(strsql, "Readers")
        '如果结果集为空,则退出
        If mydet Is Nothing OrElse mydet.Tables(0).Rows.Count = 0 Then
            '设置提示信息
            lblMessage.Text = txtReader.Text + "没有借阅信息"
            'Exit Sub
        End If

        Dim item As ListViewItem
        Dim subItem1 As ListViewItem.ListViewSubItem
        Dim subItem2 As ListViewItem.ListViewSubItem
        Dim subItem3 As ListViewItem.ListViewSubItem

        Dim i As Integer
        Dim str As String
        '清空显示信息
        lsvBorrow.Items.Clear()
        '设置提示信息
        lblMessage.Text = txtReader.Text + "共有" + mydet.Tables(0).Rows.Count.ToString + "条借阅信息"
        '通过循环显示该读者所以已借阅书籍信息
        For i = 0 To mydet.Tables(0).Rows.Count - 1
            With mydet.Tables(0).Rows(i)
                item = New ListViewItem
                subItem1 = New ListViewItem.ListViewSubItem
                subItem2 = New ListViewItem.ListViewSubItem
                subItem3 = New ListViewItem.ListViewSubItem
                '书籍ISBN
                item.Text = .Item("ISBN") & ""
                '根据ISBN得到书名
                subItem1.Text = getField("Name", "ISBN=" + item.Text, "BookInfo")
                '借阅时间
                subItem2.Text = .Item("BorrowDate") & ""
                '到期时间
                subItem3.Text = .Item("Deadline") & ""
            End With
            item.SubItems.Add(subItem1)
            item.SubItems.Add(subItem2)
            item.SubItems.Add(subItem3)
            lsvBorrow.Items.Add(item)
        Next
    End Sub


    Private Sub lsvBorrow_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lsvBorrow.SelectedIndexChanged
        '设置【还入】按钮可用
        btnDel.Enabled = True
    End Sub

    Private Sub lsvHas_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lsvHas.SelectedIndexChanged
        '甚至【借阅】按钮可用
        btnAdd.Enabled = True
    End Sub


    Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click
        Me.Close()
    End Sub
End Class

⌨️ 快捷键说明

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