【文章內(nèi)容簡(jiǎn)介】
圖書歸還 逾期清單 圖書罰款 讀者管理 圖書管理 圖書流通管理 第 9 頁 共 23 頁 添加一個(gè)窗體,這個(gè)窗體共由 1個(gè) form 控件、 4個(gè) label 控件、 3 個(gè) textbox控件和 2 個(gè) button 控件組成。窗體運(yùn)行效果如圖所示。 圖 9 系統(tǒng)登陸窗體 主要代碼設(shè)計(jì): // 39。判斷用戶輸入密碼的合法性 If () = () _ And UserPwd Then 39。合法用戶 39。 bResult = True 39。UserName = () 39。() Dim frmlogin As New frmMain () () Else 39。密碼錯(cuò)誤 bResult = False (請(qǐng)確認(rèn)你的用戶名或密碼是否正確 ) End If End Sub ?? ?? ?? ?? 在該窗體加載時(shí)候進(jìn)行數(shù)據(jù)庫的連接輸入編號(hào),如果編號(hào)正確,自動(dòng)加載姓名,然后輸入用戶密碼。如果密碼正確進(jìn)入系統(tǒng)主窗體控件。如果密碼不正確,提示密碼錯(cuò)誤。 主窗體的設(shè)計(jì) 本窗體主要是由讀者管理、圖書管理、流通管理和退出系統(tǒng)等幾個(gè)菜單控件組成。選擇主菜單中的各菜單項(xiàng)即可 進(jìn)入相應(yīng)的功能模塊。 主窗體名為 frmMain,窗體運(yùn)行效果如圖 10所示。 第 10 頁 共 23 頁 圖 10 系統(tǒng)主窗體 創(chuàng)建數(shù)據(jù)訪問模塊 因?yàn)楦鱾€(gè)窗體均需要對(duì)數(shù)據(jù)庫進(jìn)行訪問,可以把數(shù)據(jù)庫的一些操作通過一個(gè)類實(shí)現(xiàn),這樣就可以使對(duì)數(shù)據(jù)庫的訪問更加簡(jiǎn)單。添加一個(gè)名為“ ”的類文件。主要代碼設(shè)計(jì): Public Class DataBase 39。實(shí)現(xiàn)接口 IDisposable Implements IDisposable 39。數(shù)據(jù)庫連接對(duì)象 Private SqlConn As SqlConnection Public Shared sConn As String = Persist Security Info=False。Integrated Security=SSPI。database=libbook。server=本機(jī)數(shù)據(jù)庫服務(wù)器名稱 。Connect Timeout=30 ?? ?? ?? ?? Public Sub Open() If SqlConn Is Nothing = True Then 39。建立數(shù)據(jù)庫連接對(duì)象 SqlConn = New SqlConnection() 39。打開數(shù)據(jù)庫連接 () End If End Sub Public Sub Close() 39。如果數(shù)據(jù)庫連接對(duì)象不為空則關(guān)閉數(shù)據(jù)庫連接 If SqlConn Is Nothing = False Then () 第 11 頁 共 23 頁 End If End Sub 創(chuàng)建數(shù)據(jù)操作窗體的父類窗體 因?yàn)橄到y(tǒng)中所有對(duì)數(shù)據(jù)庫表進(jìn)行維護(hù)的窗體界面及實(shí)現(xiàn)的功能大體都是一致的,可以把這些共同的部分抽取出來,生成一個(gè)父類窗體,其他數(shù)據(jù)庫操作窗體均可以通過繼承父類窗體獲得數(shù)據(jù)維護(hù)的功能。添加控件后窗體如圖 11 所示。 圖 11 基礎(chǔ)窗體 主要代碼設(shè)計(jì): Case 首記錄 39。返回首記錄 = 0 ?? ?? ?? ?? Case 刪除 39。彈出詢問對(duì)話框 Dim dlgResult As DialogResult = _ (你確認(rèn)刪除此數(shù)據(jù)? , _ 刪除 , ) If dlgResult = Then DeleteData() End If Case 保存 SetToolBarState(True) SetTextBoxState(True) If bAdd = True Then 39。為新增數(shù)據(jù)保存 SaveForAdd() Else 第 12 頁 共 23 頁 39。為更新數(shù)據(jù)保存 SaveForUpdate() End If = True Case 取消 SetTextBoxState(True) SetToolBarState(True) = True SearchResult() Case 退出 39。關(guān)閉本窗體 () End Select ?? ?? ?? ?? 讀者類別設(shè)置模塊 本窗體首先顯示全部的讀者類型。它實(shí)現(xiàn)對(duì)讀者類別的管理,如添加、修改、刪除等操作。也可以對(duì)輸入的類型進(jìn)行搜索操作。當(dāng)單擊“添加”或者“修改”按扭時(shí),激活“保存”和“取消”按扭??梢园压芾韱T對(duì)讀者類 型表中各條信息所做的操作進(jìn)行保存或者取消保存。修改和保存過后的數(shù)據(jù)直接保存到數(shù)據(jù)庫,窗體運(yùn)行效果如圖 12 所示。 圖 12 讀者類別設(shè)置功能窗體 主要代碼實(shí)現(xiàn)如下: Dim dr As DataRow = (讀者類型 ).NewRow() Try dr(類型 ) = dr(圖書冊(cè)書 ) = dr(續(xù)借次 數(shù) ) = 第 13 頁 共 23 頁 dr(限制圖書 ) = Catch ex As Exception 讀者檔案管理功能模塊 本窗體功能和讀者類別設(shè)置模塊的功能幾乎一致,只不過這里是對(duì)讀者檔案的設(shè)置信息。同樣具有添加,修改,刪除以及保存和取消保存的功能。窗體運(yùn)行效果如圖 13所 示。 圖 13 讀者檔案管理功能窗體 主要代碼的設(shè)計(jì)如下: Public Overrides Sub Prepare() = 讀者檔案管理 = 條形碼 = 編號(hào) = 姓名 Dim db As DataBase = New DataBase Dim dv As DataView = _ (select 類型 from 讀者類型 ) 圖 書類別設(shè)置的功能模塊 本窗體功能和讀者類別設(shè)置模塊的功能一樣,只不過這里是對(duì)圖書的類別的設(shè)置信息。同樣具有搜索,添加,修改,刪除以及保存和取消保存的功能。窗體運(yùn)行效果如圖 14所示。 圖 14圖書類別設(shè)置功能窗體 第 14 頁 共 23 頁 主要代碼實(shí)現(xiàn)如下: ?? ?? ?? ?? Dim dr As DataRow = (圖書類型 ).NewRow() Try dr(類型編號(hào) ) = dr(類型名 稱 ) = () Dim iDays As Integer = CInt() dr(可借天數(shù) ) = Catch ex As Exception (數(shù)據(jù)格式不正確! ) Exit Sub ?? ?? ?? ?? 圖書檔案管理的功能模塊 本窗體功能和讀者檔案管理模塊的功能一樣,只不過這里是對(duì)圖書檔案的設(shè)置信息。同樣具有添加,修改,刪除以及保存和取消保存的功能。窗體運(yùn)行效果如圖 15所示。 圖 15圖書檔案管理功能窗體 主要代碼實(shí)現(xiàn)如下: ?? ?? ?? ?? Public Overrides Sub Prepare() = 圖書檔案管理 = 條形碼 = 編號(hào) = 書名 Dim db As DataBase = New DataBase Dim dv As DataView = _ 第 15 頁 共 23 頁 (select 類型名稱 from 圖書類型 ) For Each dr As DataRow In (dr(0).) Next dv = (select 出版社名稱 from 出版社 ) For Each dr As DataRow In (dr(0).) Next dv = (select 書架名稱 from 書架 ) For Each dr As DataRow In (dr(0).) Next ?? ?? ?? ?? 圖書征訂的功能模塊 完成圖書館對(duì)圖書的征訂和提交征訂的功能,同樣具有對(duì)征訂的信息進(jìn)行添加、修改、刪除以及保存和取消保存的功能。這里的“提交征訂(驗(yàn)收)”按扭。當(dāng)單擊它時(shí)系統(tǒng)調(diào)用“ sf_圖書征訂”存儲(chǔ)過程,增加圖書的在庫數(shù)量,并將“是否驗(yàn)收”字段設(shè)置為 1,表示 征訂記錄已經(jīng)驗(yàn)收。征訂編號(hào)為系統(tǒng)自動(dòng)生成,輸入圖書編號(hào)自動(dòng)顯示出圖書的名稱,圖書名稱項(xiàng)文本框不可以用,此時(shí)的“搜索”圖標(biāo)也為可用狀態(tài),單擊搜索圖標(biāo)顯示出所有圖書的信息表,雙擊任意一條圖書消息即可選定它為要征訂的圖書。窗體運(yùn)行效果如圖 16所示。 圖 16 圖書征訂功能窗體 主要代碼設(shè)計(jì)如下: Public Overrides Sub LoadData() 39。清空 DataSet11 () = 第 16 頁 共 23 頁 Dim strSQL As String If = 0 Then strFilter = where 是否驗(yàn)收 = 0 Else strFilter = and 是否驗(yàn)收 = 0 End If _ = select * from 圖書征訂 + strFilter 39。根據(jù)查詢條件重新填充 DataSet11 (DataSet11) dtData = (圖書征訂 ) If (圖書名稱 ) = 1 Then (圖書名稱 ) End If 39。為圖書名稱設(shè)置數(shù)據(jù) SetBookName() bmData = (DataSet11, 圖書征訂 ) If 0 Then = 0 End If End Sub ?? ?? ?? ?? 圖書借閱的功能模塊 該功能完成對(duì)圖書的借閱。此功能支持條碼借閱圖書。讀者選擇 和圖書選擇可以支持編碼和條碼輸入,默認(rèn)是編碼,在“讀者信息”編輯框中輸入編碼,回車后系統(tǒng)自動(dòng)列出該讀者的姓名、類型及已經(jīng)借閱還未歸還的圖書清單,并且光標(biāo)跳到“借閱圖書信息”編輯框;在“圖書借閱信息”編輯框中輸入圖書編號(hào)或者條碼,