![數(shù)據(jù)庫課程設(shè)計(jì)_圖書管理系統(tǒng)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/25/29306d71-407b-4565-841f-10a45561aac1/29306d71-407b-4565-841f-10a45561aac11.gif)
![數(shù)據(jù)庫課程設(shè)計(jì)_圖書管理系統(tǒng)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/25/29306d71-407b-4565-841f-10a45561aac1/29306d71-407b-4565-841f-10a45561aac12.gif)
![數(shù)據(jù)庫課程設(shè)計(jì)_圖書管理系統(tǒng)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/25/29306d71-407b-4565-841f-10a45561aac1/29306d71-407b-4565-841f-10a45561aac13.gif)
![數(shù)據(jù)庫課程設(shè)計(jì)_圖書管理系統(tǒng)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/25/29306d71-407b-4565-841f-10a45561aac1/29306d71-407b-4565-841f-10a45561aac14.gif)
![數(shù)據(jù)庫課程設(shè)計(jì)_圖書管理系統(tǒng)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/25/29306d71-407b-4565-841f-10a45561aac1/29306d71-407b-4565-841f-10a45561aac15.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、*大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院數(shù)據(jù)庫課程設(shè)計(jì) 報(bào)告書題目:基于 C/S模式的圖書管理系統(tǒng)的設(shè)計(jì)所學(xué)專業(yè):計(jì)算機(jī)軟件與理論班 級:作 者:指導(dǎo)老師:完成日期:2006年 08月 08日內(nèi)容提要本文介紹了一個(gè)基于 Client/Server模式的 高校圖書管理系統(tǒng)的設(shè)計(jì)與實(shí) 現(xiàn)。 運(yùn)用 Visual Basic.Net結(jié)合 Microsoft SQL Server 2000開發(fā)的登錄 模塊 主要用于驗(yàn)證用戶身份, 進(jìn)行有效的操作。 從主界面模塊在驗(yàn)證后進(jìn)入每個(gè)子模 塊 進(jìn)行各個(gè)子系統(tǒng)的具體功能操作。 在整個(gè)系統(tǒng)設(shè)計(jì)中 充分利用了模塊化的設(shè)計(jì) 思想和開發(fā)方法。關(guān)鍵詞 C/S SQL2000數(shù)據(jù)庫 課程設(shè)
2、計(jì)目 錄第一章 問題描述1.1 圖書管理系統(tǒng)簡介 (背景 本系統(tǒng)利用 VB.NET 處理數(shù)據(jù)庫的功能, 實(shí)現(xiàn)對圖書館信息的管理。 主要 功能為管理有關(guān)讀者、出版社、書籍、借閱和管理者的信息等。本系統(tǒng)的結(jié)構(gòu)分為讀者信息管理模塊、 出版社信息管理模塊、 書籍信息管 理模塊、借閱信息管理模塊、管理者管理信息模塊、報(bào)表顯示模塊和查詢處理 模塊。1.2 數(shù)據(jù)需求根據(jù)系統(tǒng)的需求,首先將要記錄的信息分類,要記錄的信息如下。 讀者信息:包括證號、姓名、聯(lián)系方式、已借書數(shù)目、讀者類別和能否 借書等。出版社信息:包括名稱、地址、網(wǎng)址、 E-mail 等。書籍信息:包括書號、叢書系列、作者、責(zé)任編輯、字?jǐn)?shù)、定價(jià)、出
3、版 時(shí)間、主題分類、二級分類、館內(nèi)借閱分類、總冊數(shù)、庫存量、出版社和書名 等。借閱信息:包括借閱日期、應(yīng)歸還日期、實(shí)際歸還日期、能否續(xù)借、書 號和證號等。管理者信息:包括管理者名稱、對應(yīng)密碼和對應(yīng)權(quán)限等。根據(jù)這些需要,本系統(tǒng)需要“讀者信息”表, “出版社信息”表, “書籍信息” 表, “借閱信息”表和“管理者信息”表。1.3 事務(wù)需求經(jīng)過實(shí)際考察、 咨詢和分析, 高等院校圖書管理系統(tǒng)主要應(yīng)該具有以下功 能模塊,如 1.1圖。在讀者信息管理部分 , 要求如下。可以瀏覽讀者信息。可以對讀者信息進(jìn)行維護(hù) , 包括添加及刪除等操作。在出版社信息管理部分 , 要求如下??梢詾g覽出版社信息??梢詫Τ霭嫔缧?/p>
4、息進(jìn)行維護(hù) , 包括添加及刪除等操作。在書籍信息管理部分 , 要求如下??梢詾g覽書籍信息??梢詫畔⑦M(jìn)行維護(hù) , 包括添加及刪除等操作。 在借閱信息管理部分 , 要求如下??梢詾g覽借閱信息。可以對借閱信息進(jìn)行維護(hù)操作。在管理者信息管理部分 , 要求如下。顯示當(dāng)前數(shù)據(jù)庫中管理者情況。對管理者信息維護(hù)操作。圖 1.1 系統(tǒng)業(yè)務(wù)邏輯關(guān)系1.4 系統(tǒng)開發(fā)平臺前臺:1、硬件要求:CPU: Pentium 4 2.0GHz以上 IBM 兼容機(jī)內(nèi)存:512MB 以上容量顯卡:32MB 或以上顯存之 AGP 接口顯卡2、軟件要求:操作系統(tǒng):Microsoft Windows 2000/XP 開發(fā)工具:Mi
5、crosoft Visual Studio.Net2003數(shù)據(jù)庫服務(wù)器:1、硬件要求:CPU: Pentium4 2.8GHz以上 IBM 兼容機(jī)內(nèi)存:1024MB 以上容量顯卡:32MB 或以上顯存之 AGP 接口顯卡2、軟件要求:操作系統(tǒng):Microsoft Windows 2000 Server數(shù)據(jù)庫服務(wù)器:Microsoft SQL 2000 Server網(wǎng)絡(luò)設(shè)備:2塊網(wǎng)卡:客戶機(jī) D-Link DFE-650TX,服務(wù)器 Intel PCLA8460B。路由器:一臺 SOHO 路由器 TL-R402M1.5 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)本設(shè)計(jì)采用客戶機(jī) /服務(wù)器 (C/S 體系, 數(shù)據(jù)的儲存管理功能
6、較為透明性, 可以合理均衡事務(wù)的處理,充分保證數(shù)據(jù)的完整性和一致性。圖 1.2 C/S模式結(jié)構(gòu)第二章 解決方案數(shù)據(jù)庫主要著重于數(shù)據(jù)對象的屬性和數(shù)據(jù)對象之間的關(guān)系的分析。 一般采 用 E-R 圖,即實(shí)體 -關(guān)系模型來分析數(shù)據(jù)對象的屬性和數(shù)據(jù)對象之間的關(guān)系。 2.1 E-R模型設(shè)計(jì) 該圖書管理系統(tǒng)的 E-R 模型,如下圖所示 2.2 設(shè)計(jì)數(shù)據(jù)庫(1在服務(wù)器資源管理器中的任一節(jié)點(diǎn)右擊。(2執(zhí)行快捷菜單中的“新建數(shù)據(jù)庫”命令 , 并在打開的“創(chuàng)建數(shù)據(jù)庫”對 話框中輸入數(shù)據(jù)庫名 Library ,選中“使用 WindowsNT 集成安全性”單選按 鈕。(3單擊“確定”按鈕,則新建的數(shù)據(jù)庫就會出現(xiàn)在服務(wù)器
7、上。創(chuàng)建數(shù)據(jù)庫后,為 Library 數(shù)據(jù)庫添加數(shù)據(jù)表,步驟如下。(1在服務(wù)器資源管理器中右擊數(shù)據(jù)庫 Library 下的“表”文件夾。在彈 出的快捷菜單中執(zhí)行“新建表”命令,出現(xiàn)表設(shè)計(jì)器。(2添加表的字段和其他詳細(xì)資料。各表數(shù)據(jù)結(jié)構(gòu)如下表所示。 為數(shù)據(jù)庫 Library 和本系統(tǒng)之間建立一個(gè)數(shù)據(jù)連接。(1在服務(wù)器資源管理器中右擊 “數(shù)據(jù)連接” 節(jié)點(diǎn)。 在彈出的快捷菜單中 執(zhí)行 “添加連接” 命令, 打開 Data Link Properties 對話框。 切換到 Provider 選項(xiàng)卡,選中列表框中的 Microsoft OLE DB Provider for SQL Server項(xiàng)。 單
8、擊“下一步”切換到 Connection 選項(xiàng)卡。(2在其中的第一個(gè)下拉列表框中選擇數(shù)據(jù)庫所在服務(wù)器名稱。 輸入登錄 服務(wù)器信息后選擇數(shù)據(jù)庫 Library ,然后單擊 Test Connection按鈕。如果 測試成功,單擊“確定”按鈕。2.3主窗體設(shè)計(jì)設(shè)計(jì)登錄界面 , 創(chuàng)建一個(gè)新的” Windows 窗體” , 名為登錄 , 作為本系統(tǒng)的 登錄界面 . 在登錄窗體上添加兩個(gè) Label 控件 , 兩個(gè) Button 控件和兩個(gè) TextBox 控件 , 添加控件后的窗體如圖所示。在工具箱中單擊“數(shù)據(jù)”選項(xiàng)卡,添加 OleDbDataAdapter 組件。(1在工具箱中單擊 OleDbDat
9、aAdapter 組件,在窗體任意位置拖動出一個(gè)虛 框矩形后釋放左鍵彈出“數(shù)據(jù)適配器配置向?qū)А睂υ捒颉?2 單擊“下一步” ,在打開的對話框中選擇前面建好的數(shù)據(jù)連接,然后單 擊“下一步” 。(3選中“使用 SQL 語句” ,然后單擊“下一步”進(jìn)入“生成 SQL 語句”對 話框。(4在其中的多行文本框直接輸入 SQL 語句“ SELECT 管理者信息 .* FROM 管理者信息” 。(5單擊“下一步”按鈕,進(jìn)入“查看向?qū)ЫY(jié)果” ,單擊“完成”按鈕完成數(shù) 據(jù)適配器配置。配置數(shù)據(jù)適配器后,在主窗體上就會自動添加一個(gè) OleDbConnection 控件。生成數(shù)據(jù)集的步驟如下 :(1單擊 OleDbD
10、ataAdapter 控件“屬性”對話框中的“生成數(shù)據(jù)集”鏈接 , 打開“生成數(shù)據(jù)集”對話框。(2在其中選中“新建”單選按鈕 , 并在其后面的文本框中輸入“ Lib 管理者 信息” 。(3在 “ 選 擇 要 添 加 到 數(shù) 據(jù) 集 中 的 表 ” 列 表 框 中 列 出 了 前 面 添 加 的 OleDbDataAdapter 組件所連接的表 , 選中該表名前面的復(fù)選框。(4選中“將此數(shù)據(jù)集添加到設(shè)計(jì)器”復(fù)選框,單擊“確定”按鈕這樣 , 將生成一個(gè)名稱為“ Lib 管理者信息”的數(shù)據(jù)集 , 該數(shù)據(jù)集以文件形式 存儲 , 文件名為“ Lib 管理者信息 .xsd ” 。而在項(xiàng)目中 , 添加了一個(gè)
11、 DataSet 組件 , 名為“ objLib 管理者信息” 。在解決方案資源管理器中右擊該項(xiàng)目, 在彈出快捷菜單中單擊 “屬性” 菜單 項(xiàng)。在打開的“屬性頁”對話框中的“啟動對象”下拉列表框中選擇“主窗體” 選項(xiàng)。單擊“確定”按鈕,這樣該項(xiàng)目啟動時(shí),就會從主窗體開始啟動。在程序運(yùn)行過程中 , 如果想通過單擊 LinkLabel 控件或 Button 控件進(jìn)入系統(tǒng) 中的各個(gè)功能模塊 (如顯示讀者信息等 , 就會彈出一個(gè)對話框要求輸入用戶名和 密碼 . 單擊 " 確認(rèn) " 按鈕 , 程序就會到數(shù)據(jù)庫的 " 管理者信息 " 表中查找該用戶名和 密碼是否存在
12、 . 如果存在 , 允許進(jìn)入功能模塊 .完成登錄功能的主要代碼集中在 UserCheck 函數(shù)中 . 在程序運(yùn)行過程中 , 在 登錄窗體的 " 用戶姓名 " 和 " 用戶密碼 " 文本框中輸入用戶名和密碼后 , 單擊 " 確認(rèn) " 按鈕就會觸發(fā) UserCheck 函數(shù)并執(zhí)行其中的代碼 . 如果 UserCheck 函數(shù)返回 True, 那么允許用戶的操作 ; 否則拒絕用戶的操作請求 .在 UserCheck 函數(shù)中首先定義 Login 類型的變量 dlg_Login,然后通過 ShowDialog 方法來顯示登錄窗體 . 如果用戶在
13、登錄窗體中輸入用戶姓名和密碼 , 并且單擊了 " 確認(rèn) " 按鈕 , 那么自動調(diào)用一個(gè)自定義函數(shù) LoadDataSet(,由此函 數(shù)進(jìn)行數(shù)據(jù)加載 . 如果出錯(cuò) , 顯示錯(cuò)誤信息 , 回滾整個(gè)事務(wù) .具體設(shè)計(jì)代碼見附錄 1.1。2.4 讀者信息在窗體上添加 1個(gè) GroupBox 控件, 9個(gè) Button 控件, 5個(gè) TextBox 控件, 1個(gè) CheckBox 控件和 7個(gè) Label 控件。各按鈕控件是為了執(zhí)行相應(yīng)的操作。各 TextBox 控件和 CheckBox 控件用來 顯示數(shù)據(jù)集中的數(shù)據(jù),這個(gè)功能通過設(shè)置 DataBindings 屬性來實(shí)現(xiàn)。(1選中“
14、Edit 證號”控件單擊“屬性”對話框。(2單擊 DataBinding 屬性前面的 +號打開該屬性的詳細(xì)列表。(3設(shè)置 Text 屬性:在該屬性后面欄中單擊并選擇所對應(yīng)字段。(4設(shè)置其他 TextBox 控件的 DataBinding 屬性。顯示數(shù)據(jù),添加讀者,保存更改,記錄定位的實(shí)現(xiàn)。具體實(shí)現(xiàn)代碼見附 1.2。“管理者信息” , “出版社信息” , “書籍信息” , “借閱信息” 和該模塊的設(shè)計(jì) 思路及方法步驟完全一致,在此從略。2.5 顯示報(bào)表在當(dāng)前項(xiàng)目中添加一個(gè) “ Windows 窗體” , 命名為“報(bào)表窗體” , 該模塊顯示 當(dāng)前數(shù)據(jù)庫中讀者信息和借閱信息的報(bào)表。在窗體上添加一個(gè)
15、CrystalReportViewer1,它充當(dāng)報(bào)表顯示的窗體,然后在 窗體中添加一個(gè)菜單, 菜單中包括兩個(gè)子菜單項(xiàng) “讀者信息” 和 “借閱信息” 。 在程序運(yùn)行中,如果單擊“讀者信息”菜單項(xiàng),就會自動在窗體上顯示“讀 者信息報(bào)表 .rpt ” :如果單擊“借閱信息”命令就會自動在窗體上顯示“借閱信息報(bào)表 .rpt ”報(bào)表。(1在開發(fā)環(huán)境中選擇菜單“項(xiàng)目”中的“添加新項(xiàng)”對話框中選擇 Crystal Report 選項(xiàng)。(2在 “名稱” 文本框中輸入報(bào)表名 “讀者信息報(bào)表 .rpt ” , 單擊 “打開” 按鈕, 就會彈出入圖所示的“ Crystal Report庫”對話框。(3在其對話框中
16、選擇“使用報(bào)表專家”單選按鈕,在“選擇專家”列表框 中選擇“標(biāo)準(zhǔn)”選項(xiàng),單擊“確定”按鈕,進(jìn)入下一步。(4在彈出的“標(biāo)準(zhǔn)報(bào)表專家”對話框中,選擇“可用的數(shù)據(jù)源”列表框中 的 OLB DB(ADO選項(xiàng),就會彈“ OLE DB(ADO”對話框。選擇 OLB DB 提供 程序?yàn)?Microsoft OLE DB Provider for SQL Server,單擊 “下一步” 按鈕, 顯示 “連 接信息”對話框。(5在其中設(shè)置連接信息,單擊“完成”按鈕,返回“標(biāo)準(zhǔn)報(bào)表專家”對話 框。(6選擇數(shù)據(jù)源為 OLE DB(ADO中的 Library 數(shù)據(jù)庫,并且選中其中的“讀 者信息”表。單擊“插入表”按鈕
17、,把“讀者信息”表插入到報(bào)表中,單擊“下 一步”按鈕。(7在“字段”選項(xiàng)卡中單擊“全部添加”按鈕,把“讀者信息”表中的所 有字段添加到報(bào)表中,單擊“完成”按鈕就完成報(bào)表的設(shè)計(jì)。設(shè)計(jì)完成的“讀者信息報(bào)表”如圖所示。 圖 2.1 讀者信息報(bào)表效果圖添加借閱情況報(bào)表的過程與添加讀者信息報(bào)表過程大致相同, 不同之處在于插入到報(bào)表中的數(shù)據(jù)表為“讀者信息” 。2.6 綜合查詢的實(shí)現(xiàn)在程序運(yùn)行過程中, 單擊主窗體的 “綜合查詢” 按鈕, 就會彈出一個(gè)對話框。 在其中設(shè)置查詢條件,根據(jù)查詢條件從記錄集中篩選出所需記錄。為此需要在項(xiàng)目中添加一個(gè)窗體“綜合查詢” 。還需要設(shè)置 “ CmbBox 運(yùn)算符” 控件的
18、Items 屬性。 單擊窗體上 “ CmbBox 運(yùn)算符”控件,然后在“屬性”對話框中單擊 Items 欄,就會出現(xiàn)一個(gè)按 鈕,單擊按鈕,在打開的窗口中如圖 2.2所示設(shè)置字符串集合編輯器字符串。 圖 2.2 所示設(shè)置字符串集合編輯器設(shè)置完畢,單擊確定按鈕。在窗體上添加一個(gè) OleDbDataAdapter 組件,使用數(shù)據(jù)適配器配置向?qū)ζ?進(jìn)行配置。選擇數(shù)據(jù)連接后輸入 SQL 語句“ SELECT 出版社信息 .* FROM 出 版社信息” 。同樣再為窗體添加四個(gè) OleDbDataAdapter 組件,在 " 生成 SQL 語句 " 對話框的多行文本框中分別輸入 SQL
19、 語句“ SELECT 讀者 信息 .* FROM 讀者信息” , “ SELECT 管理者信息 .* FROM 管理者信息” , “ SELECT 借閱信息 .* FROM 借閱信息” , “ SELECT 書籍信息 .* FROM 書 籍信息” , 然后單擊 “完成” 按鈕, Name 屬性分別設(shè)置為 OleDbDataAdapter2, OleDbDataAdapter3, OleDbDataAdapter4, OleDbDataAdapter5完成數(shù)據(jù)適配器的 配置。生成數(shù)據(jù)集的步驟如下。(1在 OleDbDataAdapter1組件的“屬性”對話框中單擊“生成數(shù)據(jù)集”超鏈接, 打開
20、“生成數(shù)據(jù)集” 對話框, 選中 “新建” 按鈕并在后面文本框中輸入 “ Lib 綜合查詢” 。(2在“選擇要添加到數(shù)據(jù)集中的表”列表框中,選中 5個(gè)表前面的復(fù)選框。(3選中“將此數(shù)據(jù)集添加到設(shè)計(jì)器”復(fù)選框,單擊“確定”按鈕。這樣,將生成一個(gè)名稱為“ Lib 綜合查詢”的數(shù)據(jù)集,該數(shù)據(jù)集以文件的形 式存儲,文件名為“ Lib 綜合查詢 .xsd ” 。而在項(xiàng)目中,添加一個(gè) DataSet 組件, 名稱為“ objLib 綜合查詢” 。具體功能實(shí)現(xiàn)代碼見附 1.7。圖 2.3 綜合查詢數(shù)據(jù)集第三章 系統(tǒng)實(shí)現(xiàn)3.1開發(fā)環(huán)境本 系 統(tǒng) 使 用 VisualBasic.NET 語 言 進(jìn) 行 開 發(fā) 。
21、 需 要 Microsoft .NET Framework SDK v1.1的支持。適用內(nèi)存不低于 256M 配備有 Windows2000, Windows2003, WindowsXP 系統(tǒng)的計(jì)算機(jī)。3.2系統(tǒng)流程圖在本系統(tǒng)中準(zhǔn)備通過如下窗體來實(shí)現(xiàn)數(shù)據(jù)維護(hù)的功能。(1 主窗體:管理著各個(gè)子窗體。(2“讀者信息”子窗體:管理讀者信息。(3“管理者信息”子窗體:管理用戶信息。(4“出版社信息”子窗體:管理出版社信息。(5“書籍信息”子窗體:管理書籍信息。(6“借閱信息”子窗體:管理借閱信息。 (7“報(bào)表窗體”子窗體:顯示數(shù)據(jù)報(bào)表。(8“綜合查詢”子窗體:執(zhí)行用戶自定義的查詢。系統(tǒng)流程圖如圖 3
22、.1所示:圖 3.1 系統(tǒng)流程圖3.3 程序調(diào)試情況在數(shù)據(jù)連接時(shí)一定要注意窗體和相應(yīng)顯示控件的綁定關(guān)系。 在把系統(tǒng)從 一 臺 計(jì) 算 機(jī) 移 植 到 另 一 臺 計(jì) 算 機(jī) 時(shí) 一 定 要 把 數(shù) 據(jù) 文 件 library .mdf 和 library_log.LDF同時(shí)移植, 并對相應(yīng)的提供服務(wù)的 SQL Server服務(wù)器進(jìn)行相 應(yīng)的修改,否則數(shù)據(jù)正確連接并顯示。3.4 功能顯示運(yùn)行程序后首先顯示主窗體,如圖 3.2所示。 圖 3.2 主界面 單擊“輸入 /查看讀者信息” ,就會彈出如圖 3.3所示登錄框。圖 3.3 登錄界面在登錄對話框中輸入用戶姓名和密碼,單擊“確認(rèn)”按鈕,就會對用戶
23、 身份進(jìn)行認(rèn)證,如果認(rèn)證通過,那么就會彈出如圖 3.4所示的讀者信息管理 窗體。 圖 3.4 讀者信息管理窗體在“讀者信息”窗體中可以對讀者信息進(jìn)行維護(hù)操作,例如瀏覽讀者信 息,添加記錄和刪除記錄等。單擊“輸入 /查看書籍信息” ,就會顯示“書籍信息”窗體,在該窗體中 可以對書籍信息進(jìn)行維護(hù)操作。書籍信息維護(hù)窗體如圖 3.5所示。 圖 3.5 書籍信息窗體單擊“輸入 /查看借閱信息” ,就會顯示“借閱信息”窗體,在該窗體中 可以對出版社信息進(jìn)行維護(hù)操作。出版社信息維護(hù)窗體如圖所示。 圖 3.6 借閱信息窗體單擊“輸入 /查看出版社信息” ,就會顯示“出版社信息”窗體,在該窗 體中可以對借閱信息
24、進(jìn)行維護(hù)操作。借閱信息維護(hù)窗體如圖 3.7所示。 圖 3.7 出版社信息窗體單擊“輸入 /查看管理者信息” ,結(jié)果如圖 3.8所示。 圖 3.8 管理者信息窗體在主窗體上單擊“顯示報(bào)表” ,那么就可以查看反映讀者信息和借閱信 息的報(bào)表,借閱信息的報(bào)表如圖所示。圖 3.9 報(bào)表窗體如果用戶在運(yùn)行的主窗體上單擊“綜合查詢” ,那么就可以查看針對不 同的數(shù)據(jù)表進(jìn)行查詢操作。選擇查詢依據(jù)為“出版社信息”表查看其中的所 有信息,結(jié)果如圖 3.10所示。 圖 3.10 綜合查詢窗體3.5 結(jié)論在這個(gè)系統(tǒng)的開發(fā)過程中,值得注意的幾點(diǎn)有:(1數(shù)據(jù)報(bào)表的實(shí)現(xiàn) . 報(bào)表是數(shù)據(jù)庫應(yīng)用程序的重要組成部分 , 通過報(bào)表
25、 , 可以把 數(shù)據(jù)庫 中內(nèi) 容經(jīng)過 組織 以后生 動地 展示 給用戶 , VB.NET 提供的 Crystal Report可以大大提高報(bào)表的設(shè)計(jì)效率。(2復(fù)雜查詢的實(shí)現(xiàn)。在程序運(yùn)行過程中,單擊窗體中的“綜合查詢” 按鈕,就會彈出一個(gè)對話框,在該對話框中設(shè)置查詢條件,根據(jù)查詢條件從 記錄集中篩選出所需記錄, 所指定的查詢條件包括查詢的依據(jù), 排序的依據(jù), 運(yùn)算符等等。第四章 結(jié)束語通過做課程設(shè)計(jì),有幾點(diǎn)感想,歸納如下。1. 扎實(shí)的理論基礎(chǔ)。如果不掌握它們,很難寫出高水平的程序。而這 一點(diǎn)又是我們所缺乏的。2. 不鉆牛角尖。當(dāng)遇到障礙的時(shí)候,暫時(shí)遠(yuǎn)離電腦,當(dāng)重新開始工作 的時(shí)候,也許會發(fā)現(xiàn)那些難
26、題現(xiàn)在竟然可以迎刃而解。3. 多與別人交流。三人行必有我?guī)煛?. 良好的編程風(fēng)格。注意養(yǎng)成良好的習(xí)慣,代碼的縮進(jìn)編排,變量的 命名規(guī)則要始終保持一致。如果注釋和代碼不一致,那就更加糟糕。最后 , 特別要感謝史開宗老師在軟件工程和數(shù)據(jù)庫課程中認(rèn)真負(fù)責(zé)的教 學(xué),才使得我能結(jié)合所學(xué)的知識完成這一課程設(shè)計(jì)。 參考文獻(xiàn)1 薩師煊,王珊,數(shù)據(jù)庫系統(tǒng)概論(第三版 . 北京:高等教育出版社, 20002 齊治昌, 譚慶平, 寧洪, 軟件工程 (第二版 . 北京:高等教育出版社, 20043 David I.Schneider, Visual Basic.NET編程導(dǎo)論 . 電子工業(yè)出版社, 2003附錄:源代
27、碼清單附 1.1主窗體設(shè)計(jì)代碼如下:Public Class 主窗體#Region " Windows 窗體設(shè)計(jì)器生成的代碼 " 此處省略主窗體設(shè)計(jì)代碼#End RegionDim sender As System.ObjectDim e As System.EventArgsPublic Sub LoadDataSet(Dim objDataSetTemp As 圖書館管理 .Lib 管理者信息objDataSetTemp = New 圖書館管理 .Lib 管理者信息' 臨時(shí)數(shù)據(jù)集 objDataSetTemp 保存從 FillDataSet(函數(shù)調(diào)用中返回的記錄
28、' 如果未出錯(cuò)則填充到主數(shù)據(jù)集 "objLib管理者信息 " 中TryMe .FillDataSet(objDataSetTempCatch eFillDataSet As System.ExceptionThrow eFillDataSetEnd TryTryobjLib管理者信息 .Clear(objLib管理者信息 .Merge(objDataSetTempCatch eLoadMerge As System.ExceptionThrow eLoadMergeEnd TryEnd SubPublic Sub FillDataSet(ByVal dataSet
29、As 圖書館管理 .Lib 管理者信息 ' 實(shí)現(xiàn)打開連接,將 OleDbDataAdapter1中的數(shù)據(jù)添加到數(shù)據(jù)集,關(guān)閉連接。dataSet.EnforceConstraints = FalseTryMe .OleDbConnection1.Open(Me .OleDbDataAdapter1.Fill(dataSetCatch fillException As System.ExceptionThrow fillExceptionFinallydataSet.EnforceConstraints = TrueMe .OleDbConnection1.Close(End TryEnd
30、 SubPrivate Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs Handles Label1.ClickEnd SubEndEnd SubEnd SubEnd SubPrivate Sub 主窗體 _Load(ByVal sender As System.Object, ByVal e As System.EventArgs Handles MyBase .LoadEnd SubEnd SubEnd Subbtn_查詢 _Click(sender, eEnd Subbtn_報(bào)表 _C
31、lick(sender, eEnd SubEnd SubFunction UserCheck(ByVal sender As System.Object, ByVal e As System.EventArgs As Boolean Dim dlg_Login As Logindlg_Login = New LoginIf (dlg_Login.ShowDialog = DialogResult.OK ThenTryMe .LoadDataSet(Catch eLoad As System.ExceptionEnd TryDim i As IntegerMe .BindingContext(o
32、bjLib管理者信息 , "管理者信息 ".Position = 0For i = 0 To Me .BindingContext(objLib管理者信息 , "管理者信息 ".Count - 1If Not Me .BindingContext(objLib管理者信息 , "管理者信息 ".Current.GetType Is GetType (DataRowView ThenExit ForEnd IfDim drv As DataRowView = CType (Me .BindingContext(objLib管理者信息 ,
33、"管理者信 息 ".Current, DataRowViewIf Trim(drv("用戶名稱 " = dlg_Login.Txt_用戶姓名 .Text ThenIf Trim(drv("密碼 " = dlg_Login.Txt_用戶密碼 .Text ThenReturn TrueEnd IfEnd IfMe .BindingContext(objLib管理者信息 , "管理者信息 ".Position += 1NextEnd IfUserCheck = FalseEnd FunctionPrivate Sub b
34、tn_讀者信息 _Click(ByVal sender As System.Object, ByVal e As System.EventArgs Handles btn_讀者信息 .ClickIf UserCheck(sender, e ThenDim dlg As 讀者信息dlg = New 讀者信息dlg.ShowDialog(ElseMessageBox.Show("登錄失敗! ", "登錄 ", MessageBoxButtons.OK, _MessageBoxIcon.StopEnd IfEnd SubPrivate Sub btn_書籍信息
35、 _Click(ByVal sender As System.Object, ByVal e As System.EventArgs Handles btn_書籍信息 .ClickIf UserCheck(sender, e ThenDim dlg As 書籍信息dlg = New 書籍信息dlg.ShowDialog(ElseMessageBox.Show("登錄失敗! ", "登錄 ", MessageBoxButtons.OK, _MessageBoxIcon.StopEnd IfEnd SubPrivate Sub btn_出版社信息 _Clic
36、k(ByVal sender As System.Object, ByVal e As System.EventArgs Handles btn_出版社信息 .ClickIf UserCheck(sender, e ThenDim dlg As 出版社信息dlg = New 出版社信息dlg.ShowDialog(ElseMessageBox.Show("登錄失敗! ", "登錄 ", MessageBoxButtons.OK, _MessageBoxIcon.StopEnd IfEnd SubPrivate Sub btn_借閱信息 _Click(By
37、Val sender As System.Object, ByVal e As System.EventArgs Handles btn_借閱信息 .ClickIf UserCheck(sender, e ThenDim dlg As 借閱信息dlg = New 借閱信息dlg.ShowDialog(ElseMessageBox.Show("登錄失敗! ", "登錄 ", MessageBoxButtons.OK, _MessageBoxIcon.StopEnd IfEnd SubPrivate Sub btn_退出 _Click(ByVal sende
38、r As System.Object, ByVal e As System.EventArgs Handles btn_退出 .ClickEndEnd SubPrivate Sub btn_查詢 _Click(ByVal sender As System.Object, ByVal e As System.EventArgs Handles btn_查詢 .ClickIf UserCheck(sender, e ThenDim dlg As 綜合查詢dlg = New 綜合查詢dlg.ShowDialog(ElseMessageBox.Show("登錄失敗! ", &quo
39、t;登錄 ", MessageBoxButtons.OK, _MessageBoxIcon.StopEnd IfEnd SubPrivate Sub btn_報(bào)表 _Click(ByVal sender As System.Object, ByVal e As System.EventArgsHandles btn_報(bào)表 .ClickIf UserCheck(sender, e ThenDim dlg As 報(bào)表窗體dlg = New 報(bào)表窗體dlg.ShowDialog(ElseMessageBox.Show("登錄失敗! ", "登錄 ",
40、 MessageBoxButtons.OK, _MessageBoxIcon.StopEnd IfEnd SubPrivate Sub btn_管理者信息 _Click(ByVal sender As System.Object, ByVal e As System.EventArgs Handles btn_管理者信息 .ClickIf UserCheck(sender, e ThenDim dlg As 管理者信息dlg = New 管理者信息dlg.ShowDialog(ElseMessageBox.Show("登錄失敗! ", "登錄 ", Me
41、ssageBoxButtons.OK, _MessageBoxIcon.StopEnd IfEnd SubEnd SubEnd Class附 1.2讀者信息窗體設(shè)計(jì)代碼如下:Public Class 讀者信息#Region " Windows 窗體設(shè)計(jì)器生成的代碼 " 此處省略主窗體設(shè)計(jì)代碼#End RegionPrivate Sub GroupBox_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs Handles GroupBox.EnterEnd SubPrivate Sub edit 證
42、號 _TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs Handles edit證號 .TextChangedEnd SubEnd SubPrivate Sub 讀者信息 _Load(ByVal sender As System.Object, ByVal e As System.EventArgs Handles MyBase .LoadTryMe .LoadDataSet(Catch eLoad As System.ExceptionEnd TryMe .objLib 讀者信息 _PositionC
43、hanged(End SubPublic Sub LoadDataSet(Dim objDataSetTemp As 圖書館管理 .Lib 讀者信息objDataSetTemp = New 圖書館管理 .Lib 讀者信息' 臨時(shí)數(shù)據(jù)集 objDataSetTemp 保存從 FillDataSet(函數(shù)調(diào)用中返回的記錄' 如果未出錯(cuò)則填充到主數(shù)據(jù)集 "objLib讀者信息 " 中TryMe .FillDataSet(objDataSetTempCatch eFillDataSet As System.ExceptionThrow eFillDataSetEnd
44、 TryTryobjLib讀者信息 .Clear(objLib讀者信息 .Merge(objDataSetTempCatch eLoadMerge As System.ExceptionThrow eLoadMergeEnd TryEnd SubPublic Sub FillDataSet(ByVal dataSet As 圖書館管理 .Lib 讀者信息 ' 實(shí)現(xiàn)打開連接,將 OleDbDataAdapter1中的數(shù)據(jù)添加到數(shù)據(jù)集,關(guān)閉連接。dataSet.EnforceConstraints = FalseTryMe .OleDbConnection1.Open(Me .OleDbD
45、ataAdapter1.Fill(dataSetCatch fillException As System.ExceptionThrow fillExceptionFinallydataSet.EnforceConstraints = TrueMe .OleDbConnection1.Close(End TryEnd SubPrivate Sub objLib讀者信息 _PositionChanged(Me .lblNavLocation.Text = (Me .BindingContext(objLib讀者信息 , _" 讀者信息 ".Position + 1.ToStr
46、ing + "的 " _+ Me .BindingContext(objLib讀者信息 , "讀者信息 ".Count.ToStringEnd SubPrivate Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs Handles btnAdd.Click' 首先清除控件中的內(nèi)容然后調(diào)用 AddNew 方法添加新記錄如果出錯(cuò)顯示信息' 調(diào)用函數(shù)顯示記錄數(shù)和當(dāng)前記錄位置TryMe .BindingContext(objLib讀者信息 , &
47、quot;讀者信息 ".EndCurrentEdit(Me .BindingContext(objLib讀者信息 , "讀者信息 ".AddNew(Catch eEndEdit As System.ExceptionEnd TryMe .objLib 讀者信息 _PositionChanged(End SubPrivate Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs Handles btnUpdate.Click' 將在窗體中對數(shù)據(jù)的更改保存到
48、數(shù)據(jù)庫中TryMe .UpdateDataSet(Catch eUpdate As System.ExceptionEnd TryMe .objLib 讀者信息 _PositionChanged(End SubPublic Sub UpdateDataSet(Dim objDataSetChanges As 圖書館管理 .Lib 讀者信息 = _New 圖書館管理 .Lib 讀者信息' 創(chuàng)建一個(gè)新數(shù)據(jù)集來保存對主數(shù)據(jù)集所做的更改Me .BindingContext(objLib讀者信息 , "讀者信息 ".EndCurrentEdit(' 停止當(dāng)前的任何編輯
49、objDataSetChanges = CType (objLib讀者信息 .GetChanges, 圖書館管理 .Lib 讀者信息 If (Not (objDataSetChanges Is Nothing ThenTryMe .UpdateDataSource(objDataSetChanges' 調(diào)用 UpdateDataSource 函數(shù)將更改合并到數(shù)據(jù)集中objLib讀者信息 .Merge(objDataSetChangesobjLib讀者信息 .AcceptChanges(Catch eUpdate As System.ExceptionThrow eUpdateEnd T
50、ryEnd IfEnd SubPublic Sub UpdateDataSource(ByVal ChangedRows As 圖書館管理 .Lib 讀者信息 ' 打開數(shù)據(jù)連接,使用 OleDbDataAdapter 的 Update 方法更新數(shù)據(jù)庫TryIf (Not (ChangedRows Is Nothing ThenMe .OleDbConnection1.Open(Me .OleDbDataAdapter1.Update(ChangedRowsEnd IfCatch updateException As System.ExceptionThrow updateExcepti
51、onFinallyMe .OleDbConnection1.Close(End TryEnd SubPrivate Sub btnNavFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs Handles btnNavFirst.ClickMe .BindingContext(objLib讀者信息 , "讀者信息 ".Position = 0Me .objLib 讀者信息 _PositionChanged(End SubPrivate Sub btnCancel_Click(ByVal
52、sender As System.Object, ByVal e As System.EventArgs Handles btnCancel.ClickMe .BindingContext(objLib讀者信息 , "讀者信息 ".CancelCurrentEdit(Me .objLib 讀者信息 _PositionChanged(End SubPrivate Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs Handles btnDelete.ClickIf (Me
53、 .BindingContext(objLib讀者信息 , "讀者信息 ".Count > 0 ThenMe .BindingContext(objLib讀者信息 , "讀者信息 ".RemoveAt _(Me .BindingContext(objLib讀者信息 , "讀者信息 ".PositionEnd IfMe .objLib 讀者信息 _PositionChanged(End SubPrivate Sub btnLast_Click(ByVal sender As System.Object, ByVal e As Sy
54、stem.EventArgs Handles btnLast.ClickMe .BindingContext(objLib讀者信息 , "讀者信息 ".Position = _(Me .BindingContext(objLib讀者信息 , "讀者信息 ".Count - 1Me .objLib 讀者信息 _PositionChanged(End SubPrivate Sub btnNavPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs Handles btnNav
55、Prev.ClickMe .BindingContext(objLib讀者信息 , "讀者信息 ".Position = _(Me .BindingContext(objLib讀者信息 , "讀者信息 ".Position - 1Me .objLib 讀者信息 _PositionChanged(End SubPrivate Sub btnNavNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs Handles btnNavNext.ClickMe .BindingCo
56、ntext(objLib讀者信息 , "讀者信息 ".Position = _(Me .BindingContext(objLib讀者信息 , "讀者信息 ".Position + 1Me .objLib 讀者信息 _PositionChanged(End SubPrivate Sub btnCancelAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs Handles btnCancelAll.ClickMe .objLib 讀者信息 .RejectChanges(E
57、nd SubEnd Class*鑒于“讀者信息”,“管理者信息”,“出版社信息”,“書籍信息”,“借閱信息”模塊除連接數(shù)據(jù) 源不同外,設(shè)計(jì)思路步驟均相同,此處省略“管理者信息”,“出版社信息”,“書籍信息”,“借閱信 息”四個(gè)模塊的代碼。附 1.3管理者信息窗體設(shè)計(jì)代碼(略附 1.4出版社信息窗體設(shè)計(jì)代碼(略附 1.5書籍信息窗體設(shè)計(jì)代碼如(略附 1.6借閱信息窗體設(shè)計(jì)代碼如(略附 1.7綜合查詢窗體設(shè)計(jì)代碼如下:Public Class 綜合查詢#Region " Windows 窗體設(shè)計(jì)器生成的代碼 " 此處省略窗體設(shè)計(jì)代碼#End RegionSub QueryDat
58、a(ByVal SqlString As String , ByVal OrderString As String QueryString = SqlStringIf OrderString <> "" ThenQueryString = SqlString + " ORDER BY " + OrderStringEnd IfEnd SubPublic Sub LoadDataSet(Dim objDataSetTemp As 圖書館管理 .Lib 綜合查詢objDataSetTemp = New 圖書館管理 .Lib 綜合查詢TryMe .FillDataSet(objDataSetTempCatch eFillDataSet As Syst
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教部編版歷史七年級下冊第10課 《蒙古族的興起與元朝的建立》 聽課評課記錄7
- 北師大版歷史八年級上冊第10課《新文化運(yùn)動》聽課評課記錄
- 豬場購銷合同(2篇)
- 生產(chǎn)承包合同(2篇)
- 仁愛版八年級地理上冊3.2《土地資源》聽課評課記錄
- 八年級道德與法治下冊第四單元崇尚法治精神第七課尊重自由平等第1框自由平等的真諦聽課評課記錄(新人教版)
- 蘇科版數(shù)學(xué)七年級下冊10.2.1《二元一次方程組》聽評課記錄
- 冀教版數(shù)學(xué)七年級下冊《多項(xiàng)式乘多項(xiàng)式》聽評課記錄2
- 湘教版數(shù)學(xué)七年級上冊2.3《代數(shù)式的值》聽評課記錄
- 五年級數(shù)學(xué)下冊聽評課記錄《3.1 分?jǐn)?shù)乘法(一)(4)》北師大版
- 固體廢棄物檢查記錄
- 工程設(shè)計(jì)費(fèi)取費(fèi)標(biāo)準(zhǔn)
- GB/T 5465.1-2009電氣設(shè)備用圖形符號第1部分:概述與分類
- 2023年遼寧鐵道職業(yè)技術(shù)學(xué)院高職單招(數(shù)學(xué))試題庫含答案解析
- CAPP教學(xué)講解課件
- 自然環(huán)境的服務(wù)功能課件 高中地理人教版(2019)選擇性必修3
- 小耳畸形課件
- 新人教版初中初三中考數(shù)學(xué)總復(fù)習(xí)課件
- 機(jī)械制造有限公司組織架構(gòu)圖模板
- 8.3 摩擦力 同步練習(xí)-2021-2022學(xué)年人教版物理八年級下冊(Word版含答案)
- 生理學(xué)教學(xué)大綱
評論
0/150
提交評論