图书管理系统设计

摘  要

图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。
    因此本人结合开入式图书馆的要求,对MS SQL Server2000数据库管理系统、SQL语言原理、.NET应用程序设计进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库需求分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的图书管理系统可以满足借阅者、图书馆工作人员的双方面的需要。

目录

一、 设计的目的和内容 1

二、 系统需求分析 1

三、 系统总体设计 1

 3.1 总体功能结构图 1

 3.2 系统流程图 2

四、 数据库设计 3

 4.1 需求分析及数据字典 3

 4.2 概念设计 4

 4.3 逻辑设计 5

 4.4 物理设计 6

 4.5 SQL语句的实现 6

 4.6 创建视图 7

 4.7 创建存储过程 8

 4.8 创建触发器 9

五、 使用ER/STUDIO完成数据库设计 10

六、 代码实现 11

 6.1 图书管理系统的功能模块图 11

 6.2 插入功能的实现 11

 6.3修改/删除功能的实现 11

 6.4 查询功能的实现 11

七、 总结 30

图书管理系统

一.系统设计目的和内容:

    图书管理系统主要目的是对图书馆种类繁多的书籍进行管理,并且合理管理好用户的借还信息。提高图书馆的工作效率,降低管理成本。其开发主要包括后台数据库的建立和维护,以及前端应用程序的开发。前者要求建立起数据一致性各完整性强、数据安全性好的数据库。而后者则要求应用程序具有功能完备、易用等特点。因此本系统结合开放式图书馆的要求,采用SQL SERVER 2000数据库进行系统的开发。

二.系统需求分析:

  1. 书目查询管理:根据一定的条件对图书进行查询,并可以查看图书的详细信息,查询范围出版社、书名、作者等查询项目进行任意条件的组合查询。
  2. 权限维护管理:系统管理员可以在此模块中,对已有的图书信息进行修改,并对用户信息进行管理。
  3. 用户信息管理:用户登录该系统后,可以进行图书的借阅和归还操作,还可修改密码、查询借阅信息等。

三.系统总体设计

四.数据库设计

4.1数据库的需求分析:

    本系统使用SQL SERVER2000作为应用程序的数据库。考虑到系统的实际需求,系统至少需要四张数据库表,具体如下:

  1. 图书信息表(BOOKS):用于图书馆的所有已录入的书目信息,这是本系统最为关键的数据部分,包括图书号、图书名、图书作者、出版时间、索取号、价格和图书条码。
  2. 用户信息表(USES):用户ID、用户名、密码、地址、E-MAIL、电话。
  3. 借阅信息表(LENDS):用户ID、图书号、借阅时间。
  4. 管理员信息表(MANGER):管理员ID、密码
  5. 归还信息表(MANGER):图书号、管理员ID、归还时间。

数字字典

4.2概念设计

4.3逻辑设计

         BOOKINFO                     USERS

MANGER

            

                               LENDINFO

六、 代码实现

6.1 图书管理系统的功能模块图

系统主界面:

Imports System.Data.SqlClient

Imports System.IO

Public Class searchN

    Inherits System.Web.UI.Page

    Private connectingstring As String

    Private myConn As SqlConnection

    Private ds As DataSet

    Private myAdapter As SqlDataAdapter

    Protected WithEvents HyperLink1 As System.Web.UI.WebControls.HyperLink

    Protected WithEvents radiobutton1 As System.Web.UI.WebControls.RadioButton

    Protected WithEvents dropdownlist1 As System.Web.UI.WebControls.DropDownList

    Protected WithEvents button1 As System.Web.UI.WebControls.Button

    Private myCmd As SqlCommand

    Public Sub Open()

        myConn.Open()

    End Sub

    Public Sub Close()

        myConn.Close()

    End Sub

    Public Sub Fill(ByVal sqlstr As String)

        myAdapter = New SqlDataAdapter(sqlstr, myConn)

        ds = New DataSet

        myAdapter.Fill(ds)

    End Sub

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '在此处放置初始化页的用户代码

        connectingstring = "data source=(local);Database=library;uid=sa;pwd=123456;"

        myConn = New SqlConnection(connectingstring)

        If Not IsPostBack Then

            If Not Session("UserID") Is Nothing Then

                If AllowBooking(Session("UserID")) = True Then

                End If

            End If

        End If

    End Sub

    'private bind

    Public Function GetRowsNum(ByVal sqlstr As String) As Integer

        If myConn.State = ConnectionState.Closed Then

            myConn.Open()

        End If

        Fill(sqlstr)

        Close()

        Return ds.Tables(0).Rows.Count

    End Function

    Public Function AllowBooking(ByVal UserID As String) As Boolean

        Dim sqlstr As String = "select * from UserInfo,RoleInfo where UserInfo.RoleID=RoleInfo.RoleID and AllowBooking=1  and UserID='" + UserID + "'"

        If GetRowsNum(sqlstr) = 0 Then

            Return False

        Else

            Return True

        End If

    End Function

    Public Sub BindDBGrd(ByVal sqlstr As String, ByVal myDBGrd As DataGrid)

        If myConn.State = ConnectionState.Closed Then

            myConn.Open()

        End If

        Fill(sqlstr)

        myDBGrd.DataSource = ds.Tables(0).DefaultView

        myDBGrd.DataBind()

    End Sub

    Public Sub BindDBGrd(ByVal sqlstr As String, ByVal myDBGrd As DataGrid, ByVal SortExp As Object)

        If myConn.State = ConnectionState.Closed Then

            myConn.Open()

        End If

        Fill(sqlstr)

        Dim dv As DataView = ds.Tables(0).DefaultView

        dv.Sort = SortExp

        myDBGrd.DataSource = dv

        myDBGrd.DataBind()

    End Sub

    Private Sub BindGrid()

        If Not Session("sqlstr") Is Nothing Then

            Dim sqlstr As String = CType(Session("sqlstr"), String)

            BindDBGrd(sqlstr, ResultGrid)

            Session("sqlstr") = sqlstr

        End If

    End Sub

    Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click

        Dim sign As String = ""

        If AnyChoice.Checked = True Then

            sign = "%"

        End If

        Dim sqlstr As String = "select  * from BookInfo where 1=1 "sqlstr += " and " + dropdownlist1.SelectedValue + " like '" + sign + txtContent.Text.ToString.Trim + sign + "' "

        Session("sqlstr") = sqlstr

        BindGrid()

    End Sub

    Private Sub ResultGrid_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles ResultGrid.PageIndexChanged

        ResultGrid.CurrentPageIndex = e.NewPageIndex

        BindGrid()

    End Sub

    Private Sub ResultGrid_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles ResultGrid.SortCommand

        Dim sqlstr As String

        If viewstate("sortexp") Is Nothing Then

            viewstate("sortexp") = e.SortExpression.ToString

        ElseIf viewstate("sortexp") = e.SortExpression.ToString Then

            viewstate("sortexp") += " desc"

        Else

            viewstate("sortexp") = e.SortExpression.ToString

        End If

        If Not Session("sqlstr") Is Nothing Then

            sqlstr = CType(Session("sqlstr"), String)

            BindDBGrd(sqlstr, ResultGrid, Viewstate("sortexp"))

        End If

    End Sub

    Public Sub ExecNonSql(ByVal sqlstr As String)

        If myConn.State = ConnectionState.Closed Then

            myConn.Open()

        End If

        myCmd = New SqlCommand(sqlstr, myConn)

        myCmd.ExecuteNonQuery()

        myCmd.Dispose()

        Close()

    End Sub

End Class

可以根据书名,内容进行查询,我们选取任意匹配:

如上图所示最上方为自定义用户控件:bar

点击权限维护:

Imports System.Data.SqlClient

Public Class user

    Inherits System.Web.UI.Page

    Private connectingstring As String

    Private myConn As SqlConnection

    Private ds As DataSet

    Private myAdapter As SqlDataAdapter

    Protected WithEvents Button2 As System.Web.UI.WebControls.Button

    Protected WithEvents Label1 As System.Web.UI.WebControls.Label

    Protected WithEvents Label2 As System.Web.UI.WebControls.Label

    Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox

    Protected WithEvents Label3 As System.Web.UI.WebControls.Label

    Protected WithEvents TextBox2 As System.Web.UI.WebControls.TextBox

    Protected WithEvents Login_trname As System.Web.UI.HtmlControls.HtmlTableRow

    Protected WithEvents Login_trpassword As System.Web.UI.HtmlControls.HtmlTableRow

    Private myCmd As SqlCommand

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '在此处放置初始化页的用户代码

        connectingstring = "data source=(local);Database=library;uid=sa;pwd=123456;"

        myConn = New SqlConnection(connectingstring)

    End Sub

    Public Function CheckUserberInfo(ByVal Userstr As String, ByVal Pwdstr As String) As Integer

        If myConn.State = ConnectionState.Closed Then

            myConn.Open()

        End If

        Dim sqlstr As String

        If Pwdstr = "" Then

            sqlstr = "select * from manage where manageid='" + Userstr.Trim + "' and Pass is null"

        Else

            sqlstr = "select * from manage where manageid='" + Userstr.Trim + "' and Pass='" + Pwdstr + "'"

        End If

        Fill(sqlstr)

        If ds.Tables(0).Rows.Count = 0 Then

            Close()

            Return -1

        End If

        ds.Clear()

        Close()

        Return 1

    End Function

    Public Sub Open()

        myConn.Open()

    End Sub

    Public Sub Close()

        myConn.Close()

    End Sub

    Public Sub Fill(ByVal sqlstr As String)

        myAdapter = New SqlDataAdapter(sqlstr, myConn)

        ds = New DataSet

        myAdapter.Fill(ds)

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        If CheckUserberInfo(TextBox1.Text, TextBox2.Text) = 1 Then

            Session("UserID") = TextBox1.Text.ToString

            Response.Redirect("delete.aspx")

        Else

            Response.Write("<script>javascript:alert('登陆失败!!!');</script>")

            Response.Write("javascript:window.location='user.aspx'")

        End If

    End Sub

End Class

登陆成功后:

点击删除后:

再次查询时:

Imports System.Data.SqlClient

Public Class delete

    Inherits System.Web.UI.Page

    Dim myconn As SqlConnection

    Private connectingstring As String

    Private ds As DataSet

    Private myAdapter As SqlDataAdapter

    Private myCmd As SqlCommand

    Public Sub BindDBGrd(ByVal sqlstr As String, ByVal myDBGrd As DataGrid)

        If myConn.State = ConnectionState.Closed Then

            myConn.Open()

        End If

        Fill(sqlstr)

        myDBGrd.DataSource = ds.Tables(0).DefaultView

        myDBGrd.DataBind()

    End Sub

    Public Sub Fill(ByVal sqlstr As String)

        myAdapter = New SqlDataAdapter(sqlstr, myConn)

        ds = New DataSet

        myAdapter.Fill(ds)

    End Sub

    Public Sub BindDBGrd(ByVal sqlstr As String, ByVal myDBGrd As DataGrid, ByVal SortExp As Object)

        If myconn.State = ConnectionState.Closed Then

            myconn.Open()

        End If

        Fill(sqlstr)

        Dim dv As DataView = ds.Tables(0).DefaultView

        dv.Sort = SortExp

        myDBGrd.DataSource = dv

        myDBGrd.DataBind()

    End Sub

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '在此处放置初始化页的用户代码

        connectingstring = "data source=(local);Database=library;uid=sa;pwd=123456;"

        myconn = New SqlConnection(connectingstring)

        If Not IsPostBack Then

            Dim sqlstr As String = "select * from bookinfo  "

            BindDBGrd(sqlstr, DataGrid1)

            Dim ds As DataSet = New DataSet

        End If

    End Sub

    Private Sub DataGrid1_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.DeleteCommand

        Dim sql As String

        Dim getdata As SqlDataReader

        Dim mycmd As SqlCommand

        Dim uid As String = DataGrid1.Items(e.Item.ItemIndex).Cells(0).Text

        sql = "delete from bookinfo where bookid='" + uid + "'"

        mycmd = New SqlCommand(sql, myconn)

        myconn.Open()

        mycmd.ExecuteNonQuery()

        myconn.Close()

        mycmd.Dispose()

        Response.Write("<script>javascript:alert('删除成功!!!');</script>")

    End Sub

End Class

点击用户登录后:

Imports System.Data.SqlClient

Imports System.IO

Public Class WebForm1

    Inherits System.Web.UI.Page

    Private connectingstring As String

    Private myConn As SqlConnection

    Private ds As DataSet

    Private myAdapter As SqlDataAdapter

    Protected WithEvents Button2 As System.Web.UI.WebControls.Button

    Private myCmd As SqlCommand

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '在此处放置初始化页的用户代码

        connectingstring = "data source=(local);Database=library;uid=sa;pwd=123456;"

        myConn = New SqlConnection(connectingstring)

    End Sub

    Public Function CheckUserberInfo(ByVal Userstr As String, ByVal Pwdstr As String) As Integer

        If myConn.State = ConnectionState.Closed Then

            myConn.Open()

        End If

        Dim sqlstr As String

        If Pwdstr = "" Then

            sqlstr = "select * from Users where UserID='" + Userstr.Trim + "' and Pass is null"

        Else

            sqlstr = "select * from Users where UserID='" + Userstr.Trim + "' and Pass='" + Pwdstr + "'"

        End If

        Fill(sqlstr)

        If ds.Tables(0).Rows.Count = 0 Then

            Close()

            Return -1

        End If

        ds.Clear()

        Close()

        Return 1

    End Function

    Public Sub Open()

        myConn.Open()

    End Sub

    Public Sub Close()

        myConn.Close()

    End Sub

    Public Sub Fill(ByVal sqlstr As String)

        myAdapter = New SqlDataAdapter(sqlstr, myConn)

        ds = New DataSet

        myAdapter.Fill(ds)

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        If CheckUserberInfo(TextBox1.Text, TextBox2.Text) = 1 Then

            Session("UserID") = TextBox1.Text.ToString

            Response.Redirect("userlist.aspx")

        Else

            Response.Write("<script>javascript:alert('登陆失败!!!');</script>")

            Response.Write("javascript:window.location='Login.aspx'")

        End If

    End Sub

End Class

登录成功后:

Imports System.Data.SqlClient

Public Class userlist

    Inherits System.Web.UI.Page

    Dim myConn As SqlConnection

    Private myCmd As SqlCommand

    Private connectingstring As String

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '在此处放置初始化页的用户代码

        connectingstring = "data source=(local);Database=library;uid=sa;pwd=123456;"

        myConn = New SqlConnection(connectingstring)

        If Session("UserID") = "" Then

            Response.Redirect("Login.aspx")

        Else

            LoadUserInfo(Session("UserID"))

        End If

    End Sub

    Public Function ExecReaderSql(ByVal sqlstr As String) As SqlDataReader

        If myConn.State = ConnectionState.Closed Then

            myConn.Open()

        End If

        myCmd = New SqlCommand(sqlstr, myConn)

        Dim reader As SqlDataReader

        reader = myCmd.ExecuteReader

        myCmd.Dispose()

        Return reader

    End Function

    Public Sub LoadUserInfo(ByVal UserID As String)

        Dim sqlstr As String = "select * from Users where UserID='" + UserID + "'"

        Dim myreader As SqlDataReader = ExecReaderSql(sqlstr)

        If myreader.Read Then

            txtUserID.Text = myreader("UserID")

            txtName.Text = myreader("username")

            txtphone.Text = myreader("Phone")

            txtaddress.Text = myreader("address")

            txtEMail.Text = myreader("EMail")

        End If

        myConn.Close()

    End Sub

End Class

点击查阅信息:

Imports System.Data.SqlClient

Public Class Lend

    Inherits System.Web.UI.Page

    Dim myConn As SqlConnection

    Dim ds As DataSet

    Private myAdapter As SqlDataAdapter

    Private connectingstring As String

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '在此处放置初始化页的用户代码

        connectingstring = "data source=(local);Database=library;uid=sa;pwd=123456;"

        myConn = New SqlConnection(connectingstring)

        BindDBGrid()

    End Sub

    Public Sub Fill(ByVal sqlstr As String)

        myAdapter = New SqlDataAdapter(sqlstr, myConn)

        ds = New DataSet

        myAdapter.Fill(ds)

    End Sub

    Public Sub BindDBGrd(ByVal sqlstr As String, ByVal myDBGrd As DataGrid)

        If myConn.State = ConnectionState.Closed Then

            myConn.Open()

        End If

        Fill(sqlstr)

        myDBGrd.DataSource = ds.Tables(0).DefaultView

        myDBGrd.DataBind()

    End Sub

  

    Public Sub BindDBGrd(ByVal sqlstr As String, ByVal myDBGrd As DataGrid, ByVal SortExp As Object)

        If myConn.State = ConnectionState.Closed Then

            myConn.Open()

        End If

        Fill(sqlstr)

        Dim dv As DataView = ds.Tables(0).DefaultView

        dv.Sort = SortExp

        myDBGrd.DataSource = dv

        myDBGrd.DataBind()

    End Sub

    Private Sub BindDBGrid()

        Dim sqlstr As String = "select * from BookInfo,LendInfo where BookInfo.BookID=LendInfo.BookID  and UserID='" + Session("UserID") + "'"

        BindDBGrd(sqlstr, DataGrid1)

    End Sub

End Class

点击图书借阅登记:

Imports System.Data.SqlClient

Public Class lendbook

    Inherits System.Web.UI.Page

    Private connectingstring As String

    Private myConn As SqlConnection

    Private ds As DataSet

    Private myAdapter As SqlDataAdapter

    Private myCmd As SqlCommand

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '在此处放置初始化页的用户代码

        connectingstring = "data source=(local);Database=library;uid=sa;pwd=123456;"

        myConn = New SqlConnection(connectingstring)

        If txtUserID.Text.ToString.Trim <> "" Then

            

        End If

    End Sub

    Public Sub ExecNonSql(ByVal sqlstr As String)

        If myConn.State = ConnectionState.Closed Then

            myConn.Open()

        End If

        myCmd = New SqlCommand(sqlstr, myConn)

        myCmd.ExecuteNonQuery()

        myCmd.Dispose()

        myConn.Close()

    End Sub

    Public Sub Fill(ByVal sqlstr As String)

        myAdapter = New SqlDataAdapter(sqlstr, myConn)

        ds = New DataSet

        myAdapter.Fill(ds)

    End Sub

    Public Sub BindDBGrd(ByVal sqlstr As String, ByVal myDBGrd As DataGrid)

        If myConn.State = ConnectionState.Closed Then

            myConn.Open()

        End If

        Fill(sqlstr)

        myDBGrd.DataSource = ds.Tables(0).DefaultView

        myDBGrd.DataBind()

    End Sub

    Public Sub BindDBGrd(ByVal sqlstr As String, ByVal myDBGrd As DataGrid, ByVal SortExp As Object)

        If myConn.State = ConnectionState.Closed Then

            myConn.Open()

        End If

        Fill(sqlstr)

        Dim dv As DataView = ds.Tables(0).DefaultView

        dv.Sort = SortExp

        myDBGrd.DataSource = dv

        myDBGrd.DataBind()

    End Sub

    Private Sub BindDBGrid()

        Dim sqlstr As String = "select * from BookInfo,LendInfo where BookInfo.BookID=LendInfo.BookID and IsBack=0 and UserID='" + txtUserID.Text.ToString + "'"

        BindDBGrd(sqlstr, ListDGrid)

    End Sub

    Public Function ExecReaderSql(ByVal sqlstr As String) As SqlDataReader

        If myConn.State = ConnectionState.Closed Then

            myConn.Open()

        End If

        myCmd = New SqlCommand(sqlstr, myConn)

        Dim reader As SqlDataReader

        reader = myCmd.ExecuteReader

        myCmd.Dispose()

        Return reader

    End Function

    Private Function GetBookID() As String

        Dim sqlstr As String = "select BookID from BookInfo where BarCode='" + txtBookID.Text.ToString.Trim + "'"

        Dim BookID As String = ""

        Dim myreader As SqlDataReader = ExecReaderSql(sqlstr)

        If myreader.Read Then

            BookID = myreader("BookID")

        End If

        myConn.Close()

        Return BookID

    End Function

    Public Function GetCurNum(ByVal UserID As String) As Integer

        Dim sqlstr As String = "select count(*) as Num from LendInfo where UserID='" + UserID + "' and IsBack=0 "

        Dim myreader As SqlDataReader = ExecReaderSql(sqlstr)

        Dim num As Integer = 0

        If myreader.Read Then

            num = myreader("Num")

        End If

        myConn.Close()

        Return num

    End Function

    Public Function GetRowsNum(ByVal sqlstr As String) As Integer

        If myConn.State = ConnectionState.Closed Then

            myConn.Open()

        End If

        Fill(sqlstr)

        myConn.Close()

        Return ds.Tables(0).Rows.Count

    End Function

    Public Function GetBookState(ByVal BookID As String) As Integer

        Dim sqlstr As String = "select * from BookInfo where BookState=1 and  BookID=" + BookID

        If GetRowsNum(sqlstr) = 0 Then

            Return -2

        End If

        sqlstr = "select * from LendInfo where IsBack=0 and BookID =" + BookID

        If GetRowsNum(sqlstr) <> 0 Then

            Return -1

        End If

        sqlstr = "select * from BookingInfo where  BookID=" + BookID

        If GetRowsNum(sqlstr) <> 0 Then

            Return 0

        End If

        Return 1

    End Function

    Public Function GetBookDate(ByVal UserID As String) As Integer

        Dim sqlstr As String = "select BookDate from UserInfo where UserID='" + UserID + "'"

        Dim myreader As SqlDataReader = ExecReaderSql(sqlstr)

        Dim num As Integer = 0

        If myreader.Read Then

            num = myreader("BookDate")

        End If

        myConn.Close()

        Return num

    End Function

    Public Function LendBook(ByVal UserID As String, ByVal BookID As String) As Boolean

        Dim datenum As Integer = GetBookDate(UserID)

        Dim nowdate As Date = Date.Now

        Dim ReturnDate As Date = nowdate.AddDays(datenum)

        Dim sqlstr As String = "insert into LendInfo(BookID,UserID,LendDate,ReturnDate,IsBack)values( "

        sqlstr += "'" + BookID + "'"

        sqlstr += ",'" + UserID + "'"

        sqlstr += ",'" + nowdate.ToShortDateString + "'"

        sqlstr += ",'" + ReturnDate.ToShortDateString + "'"

        sqlstr += ",0)"

        ExecNonSql(sqlstr)

        Return True

    End Function

    Public Function GetMax(ByVal UserID As String) As Integer

        Dim sqlstr As String = "select BookNum from Users where UserID='" + UserID + "'"

        Dim myreader As SqlDataReader = ExecReaderSql(sqlstr)

        Dim num As Integer = 0

        If myreader.Read Then

            num = myreader("BookNum")

        End If

        myConn.Close()

        Return num

    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim str As String = ""

        Dim BookID As String = GetBookID()

        If GetCurNum(txtUserID.Text) >= GetMax(txtUserID.Text.ToString) Then

            Response.Write("<script>javascript:alert('借书数已满!!!');</script>")

            Return

        End If

        Dim state As Integer = GetBookState(BookID)

        If state = 1 Then

            LendBook(txtUserID.Text.ToString.Trim, BookID)

      

        Else

            Select Case state

                Case -2 : Response.Write("<script>javascript:alert('此书不在流通状态或此书不存在!!!');</script>")

                Case -1 : Response.Write("<script>javascript:alert('此书不在书架上!!!');</script>")

                Case 0 : Response.Write("<script>javascript:alert('此书已经有人预约!!!');</script>")

            End Select

        End If

        BindDBGrid()

    End Sub

End Class

七、 总结

这次课程设计用.NET来编写的,通过这次实践让我更进一步了解了.NET的基本的脚本的写法,虽然不是很熟练,但是还是知道不少,对SQL中数据库中基本操作也应用了不少,相信这次训练是受益非浅的。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
目 录 1 需求分析 2 2 数据库的概念设计 2 3 数据库的逻辑设计 3 4 数据库的物理设计 4 5 应用程序设计 6 6 编程实现 10 总结与体会 13 致 谢 14 参考文献 15 数据库原理及应用课程设计报告 1 需求分析 1.1 任务和要求 用户有以下需求:建立读者档案;建立图书档案,建立书目索引;完成日常图书检索、借、还工作,对读者档案、图书档案、借、还系统的访问,必需进行身份验证。 1.2系统总体功能设计 图书馆管理系统主要提供的功能包括图书入库、借出、归还以及对读者的信息管理 。 (1) 图书借阅: 借阅图书时应按图书馆的规则进行借阅,例如不超过5本,如果已有超时借阅的图书,则在归还前不允许再借阅等等。 (2) 图书归还: 对于图书遗失或超期归还的情况应根据图书馆的规则进行处罚。 (3) 新图书信息入库: 建立图书信息库,以便读者进行查询和借阅。 (4) 图书信息管理: 图书因使用过久或信息过时需做下架处理,或者在读者借阅书籍时发生遗失的情况下需做遗失处理,这些都需要修改数据库关于书籍的信息。 (5) 读者信息管理: 对读者应该提供能办证、修改、注销;访问时要进行身份验证,办证、修改、注销应记录操作员编号、操作日期、理由、审批记录等功能 (6) 图书信息查询: 一般读者在借阅书籍前都需查询图书馆关于所借书籍的大概信息:该图书是否在馆—是否已借出—在馆中的书架号;除查询书籍外读者还可查询关于自身的信息:是否有超期未还的图书,还可借阅书籍数目等。 1.3软硬件运行环境及开发工具 Visual Basic 6.0 SQL Server 2000 2 数据库的概念设计 E-R模型图:
图书管理系统设计是一个用于管理图书馆馆藏书籍信息的系统。该系统可以实现图书的入库、出库、借阅、归还以及查询等功能,旨在提高图书馆的管理效率和服务质量。 首先,图书管理系统需要实现图书的入库功能。当新书到达图书馆时,图书馆管理员可以通过系统将图书的基本信息录入系统,包括书名、作者、出版社、ISBN等。同时,系统可以自动生成图书编号,并将图书信息与图书编号进行关联,方便后续的查询和管理。 其次,图书管理系统需要具备出库功能。当有读者需要借阅图书时,管理员可以通过系统查询图书的可借状态,然后将图书借出并记录借阅者信息。系统还应该能够自动计算借阅期限,并提醒读者及时归还。 此外,图书管理系统还应该具备借阅和归还功能。读者可以通过系统查询自己已借图书的信息,包括借阅时间、借书期限等。当读者需要归还图书时,管理员可以在系统中标记该图书为归还状态,并记录归还时间。对于逾期未归还的图书,系统应该自动计算罚款金额,并提醒读者缴纳罚款。 最后,图书管理系统应该有便捷的查询功能。读者和管理员可以通过系统查询图书的基本信息、借阅记录等,并可以按照书名、作者、类别等条件进行筛选和排序。系统还可以提供个性化的推荐功能,根据读者的借阅历史和偏好推荐相关图书。 综上所述,一个完善的图书管理系统应该包括图书的入库、出库、借阅、归还和查询等功能,能够提高图书馆的管理效率,并为读者提供便捷的借阅服务。在设计中,需要考虑到系统的易用性、性能和安全性等方面的要求,以满足实际应用的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值