圖書借閱管理系統(tǒng)—畢業(yè)設(shè)計(jì)說明書_第1頁
圖書借閱管理系統(tǒng)—畢業(yè)設(shè)計(jì)說明書_第2頁
圖書借閱管理系統(tǒng)—畢業(yè)設(shè)計(jì)說明書_第3頁
圖書借閱管理系統(tǒng)—畢業(yè)設(shè)計(jì)說明書_第4頁
圖書借閱管理系統(tǒng)—畢業(yè)設(shè)計(jì)說明書_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、圖書借閱管理系統(tǒng)摘要:圖書借閱管理系統(tǒng)是現(xiàn)代智能辦公系統(tǒng)的重要組成部分。因此,在本論文中詳細(xì)介紹了圖書借閱管理系統(tǒng)從開發(fā)到使用的過程。論文首先從背景上說明了圖書借閱管理實(shí)現(xiàn)信息化的重要性;然后對所用到的軟件進(jìn)行了簡單的介紹;再通過簡單的需求分析來說明在圖書借閱管理系統(tǒng)應(yīng)該具備哪些功能;然后構(gòu)建一個數(shù)據(jù)庫,并對數(shù)據(jù)庫中各張表進(jìn)行分析組建相應(yīng)的關(guān)系;在需求分析和數(shù)據(jù)庫都完成后,再進(jìn)行系統(tǒng)設(shè)計(jì);然后,該論文有對系統(tǒng)編寫了使用說明書;最后,對此次系統(tǒng)的設(shè)計(jì)進(jìn)行了總結(jié)。系統(tǒng)中使用Microsoft Visual Studio 2005, Access軟件進(jìn)行代碼和數(shù)據(jù)庫的設(shè)計(jì),主要實(shí)現(xiàn)了圖書的借還書管理

2、,讀者信息的管理以及對圖書信息的管理。關(guān)鍵字:圖書管理;借閱;還書Abstract: Library book Lending Management System is an important component part of the (IOA), therefore, In this paper details the lending management system from development to use the process.Firstly, from the background shows lending management realize the importan

3、ce of information technology; then the software used a simple introduction; then through a simple needs analysis to illustrate the lending management system which features should have; and then build a database, and database tables to analyze the formation of the corresponding relationship; in requi

4、rements analysis and database are complete, then the system design; then, the paper has written a manual on the system; Finally, the design of the system summarized. System using Microsoft Visual Studio 2005, Access software code and database design, the main achievement of the management of borrowi

5、ng and returning books, readers of books of information management and information management.Keyword: library management ; borrow ; return books前言:當(dāng)今社會是一個飛速發(fā)展的信息時代,隨著計(jì)算機(jī)技術(shù)的普及,讓大多數(shù)的辦公事業(yè)通過計(jì)算機(jī)技術(shù)實(shí)現(xiàn)了信息的現(xiàn)代化,網(wǎng)絡(luò)化。圖書館對很多學(xué)生來說是個每天都會去的地方,在哪里他們可以獲取他們想要的知識,同時也可以從圖書館借閱資料,以方便出圖書館后仍能繼續(xù)查看資料。因此,圖書館作為一個信息量大的環(huán)境,計(jì)算機(jī)已被用來

6、協(xié)助圖書管理員來管理讀者、圖書、和讀者借還書的信息。在信息化還不流行的時代,通常圖書館里的信息都是通過手工的方式來記錄,這種方式工作量大,出錯率高,也不容易修改各種信息。人工的記錄信息都是以紙質(zhì)的方式來記錄信息的,大量的信息記錄容易造成資源的浪費(fèi),同時也污染了環(huán)境。手工操作時,管理員記錄信息時不僅要進(jìn)行將所有的信息寫到紙張上,還需要在借還書時對記錄的數(shù)據(jù)進(jìn)行修改,又是同樣的工作要重復(fù)好幾遍,讓費(fèi)了人力物力;讀者很難進(jìn)行圖書查詢,只能在一個一個書架上找,讓費(fèi)了時間,有時也不一定能夠找到。為了能夠解決這些問題,我們需要建立一個圖書借閱管理系統(tǒng),是圖書借閱和管理能夠規(guī)范化,系統(tǒng)化,提高信息處理的速度

7、和準(zhǔn)確性,還能夠優(yōu)化圖書借閱管理的流程,減輕管理員的工作壓力,減少讀者查詢信息所浪費(fèi)的時間。一、系統(tǒng)概述及開發(fā)工具1. 系統(tǒng)概述本圖書借閱管理系統(tǒng)針對于人工管理圖書借閱時的各種功能,設(shè)置了兩種人員的使用權(quán)限,一個是系統(tǒng)管理員,還有一個是普通用戶;系統(tǒng)管理員主要有讀者信息管理、添加圖書信息、瀏覽圖書信息、借還書管理等功能,而普通用戶只具備了查詢圖書等功能。2. 開發(fā)工具M(jìn)icrosoft Visual Studio 2005C#是一種面向?qū)ο蟮摹⑦\(yùn)行于. NET Framework 之上的高級程序設(shè)計(jì)語言,具有許多優(yōu)良的特性和廣泛的應(yīng)用背景。C#(讀作“C sharp”)是Microsoft公司

8、推出的一種以C/C+為基礎(chǔ)的新的開發(fā)語言。作為一種新的程序設(shè)計(jì)語言,主要具有一下特點(diǎn):簡潔的語法、精心地面向?qū)ο笤O(shè)計(jì)、與Web的緊密結(jié)合、完整的安全性與錯誤處理、版本處理技術(shù)、靈活性與兼容性。C#在帶來對應(yīng)用程序的快速開發(fā)能力的同時,并沒有犧牲C與C+程序員所關(guān)心的各種特性。它忠實(shí)地繼承了C和C+的優(yōu)點(diǎn)。如果你對C或C+有所了解,你會發(fā)現(xiàn)它是那樣的熟悉。即使你是一位新手,C#也不會給你帶來任何其它的麻煩,快速應(yīng)用程序開發(fā)(Rapid Application Development,RAD)的思想與簡潔的語法將會使你迅速成為一名熟練的開發(fā)人員。 Microsoft Office AccessMi

9、crosoft Office Access是由微軟發(fā)布的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng)。它結(jié)合了 Microsoft Jet Database Engine 和圖形用戶界面兩項(xiàng)特點(diǎn),是 Microsoft Office 的系統(tǒng)程式之一。Assess能夠存取 Access/Jet、Microsoft SQL Server、Oracle,或者任何 ODBC 兼容數(shù)據(jù)庫內(nèi)的資料。熟練 的軟件設(shè)計(jì)師和資料分析師利用它來開發(fā)應(yīng)用軟件,而一些不熟練的程序員和非程序員的"進(jìn)階用戶"則能使用它來開發(fā)簡單的應(yīng)用軟件。Access是Office系列軟件中用來專門管理數(shù)據(jù)庫的應(yīng)用軟件。Access應(yīng)用程序

10、就是一種功能強(qiáng)大且使用方便的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),一邊也稱關(guān)系型數(shù)據(jù)庫管理軟件。他可運(yùn)行于各種Microsoft Windows系統(tǒng)環(huán)境中,由于它繼承了Windows的特性,不僅易于使用,而且界面友好,如今在世界各地廣泛流行。它并不需要數(shù)據(jù)庫管理著具有專業(yè)的程序設(shè)計(jì)水平,任何非專業(yè)的用戶都可以用它來創(chuàng)建功能強(qiáng)大的數(shù)據(jù)庫管理系統(tǒng)。二、系統(tǒng)分析在計(jì)算機(jī)尚未在圖書館廣泛使用之前人們都是用純手工的方法進(jìn)行圖書的管理、借閱和歸還,還有對讀者信息的管理。一個最典型的手工處理還書過程就是:讀者將要借的書和借閱證交給工作人員,工作人員將每本書上附帶的描述書的信息的卡片和讀者的借閱證信息記錄下來,并在借閱證和每

11、本書貼的借閱條上填寫借閱信息。這樣借書過程就完成了。還書時,讀者將要還的書交給工作人員,工作人員根據(jù)圖書信息找到相應(yīng)的書卡和借閱證信息,并填好相應(yīng)的還書信息,這樣還書過程就完成了。但是這樣的操作不僅需要大量的人力,還需投入大量的物力,而且在查詢信息時極其不方便。這樣就降低了管理員的工作效率,出錯率也大大提高,也讓圖書信息的更新放慢了速度。但在計(jì)算機(jī)技術(shù)流行的今天,計(jì)算機(jī)的圖書館里系統(tǒng)已經(jīng)完全代替了手工,實(shí)現(xiàn)了信息化的圖書管理。在實(shí)現(xiàn)圖書借閱管理的信息化過程中,我們需要實(shí)現(xiàn)手工操作下的所有功能。如:能夠輸入圖書的綜合情況和進(jìn)行新書入庫、現(xiàn)有圖書信息修改以及刪除; 能夠?qū)崿F(xiàn)對讀者檔案的查詢和編輯管

12、理;能夠進(jìn)行借閱歷史的查詢功能。設(shè)計(jì)圖書借閱管理系統(tǒng)主要是利用數(shù)據(jù)庫和VS軟件編制一個管理軟件,用以實(shí)現(xiàn)圖書、讀者以及日常工作等多項(xiàng)管理。同時對整個系統(tǒng)的分析、設(shè)計(jì)過程給出一個完整論證。如:圖書信息的批量錄入和刪除、圖書信息的查詢、讀者信息的錄入和刪除。圖書管理系統(tǒng)是一種基于集中統(tǒng)一規(guī)劃的數(shù)據(jù)庫數(shù)據(jù)管理新模式。在對圖書、讀者的管理,其實(shí)是對圖書、讀者數(shù)據(jù)的管理。本系統(tǒng)的建成無疑會為管理者對圖書管理系統(tǒng)提供極大的幫助。其中主要包括以下功能(如圖1):圖1 圖書借閱管理系統(tǒng)功能模塊圖管理員權(quán)限設(shè)置圖書管理圖書基本信息登記登記圖書的相關(guān)信息包括圖書編號,圖書名稱,作者,出版日期,出版社,類型,數(shù)量,

13、價(jià)格還有與之相關(guān)的備注。 顯示書目詳細(xì)資料時,要求顯示圖書編號,圖書名稱,作者,出版日期,出版 社,類型,數(shù)量,價(jià)格還有與之相關(guān)的備注。讀者信息管理讀者信息登記登記新讀者的相關(guān)信息包括借書證編號,姓名,性別,電話,身份證,密碼,罰款,身份,和與之相關(guān)的備注。 顯示讀者詳細(xì)信息時,要求顯示借書證編號,姓名,性別,電話,身份證,密碼,罰款,身份,和與之相關(guān)的備注。讀者借閱查詢能夠顯示出讀者的個人信息和圖書的相關(guān)信息。圖書借閱管理借閱登記提供借閱登記表,登記借閱者信息和需要借的相關(guān)圖書的信息。判斷該圖書是否已經(jīng)借出,如已經(jīng)借出則提示。借出書后,將相關(guān)信息添加到借出書表中。返還登記通過讀者相關(guān)信息的填

14、寫,和圖書編號的填寫,顯示出借出圖書的相關(guān)信息。將該書的歸還時間記錄在借書表中。借閱信息查詢提供借閱的書目列表,包括圖書名稱,作者,借閱書籍?dāng)?shù)。2、普通用戶權(quán)限圖書信息查詢圖書信息的查詢用戶通過相關(guān)要求的輸入,系統(tǒng)能夠顯示出符合用戶需求的圖書的相關(guān)信息。圖書借閱查詢用戶在登錄系統(tǒng)后可以查看自己的借書情況,以便自己的借書方便。用戶密碼修改用戶可以通過系統(tǒng)的相關(guān)操作,修改自己的密碼,保證了自己密碼的可靠性。三、系統(tǒng)設(shè)計(jì)1. 后臺數(shù)據(jù)庫設(shè)計(jì)在本套系統(tǒng)中,設(shè)計(jì)了6張數(shù)據(jù)表,這些數(shù)據(jù)表分別用來存儲與圖書相關(guān)的信息、與讀者相關(guān)的信息。下面分別介紹這些表的數(shù)據(jù)結(jié)構(gòu)。表1 圖書信息表字段名類型及長度說明備注B

15、IDvarchar(50)圖書編號主關(guān)鍵字BNamevarchar(50)圖書名BWritervarchar(50)作者BPublishvarchar(50)出版社BDatedate出版日期BPricevarchar(50)價(jià)格BNumvarchar(50)數(shù)量Typevarchar(50)類型BRemarkvarchar(50)備注表2 借出信息表字段名類型及長度說明備注OID自動編號系統(tǒng)自動生產(chǎn)編號主關(guān)鍵字BIDvarchar(50)圖書編號PIDvarchar(50)讀者編號ODatedate借出日期表3 讀者身份信息表字段名類型及長度說明備注identityvarchar(50)身份主

16、關(guān)鍵字longTimeint最長借閱時bigNumint最大借閱數(shù)表4 用戶權(quán)限表字段名類型及長度說明備注MNamevarchar(50)用戶名主關(guān)鍵字MCodevarchar(50)密碼manage是/否權(quán)限1work是/否權(quán)限2query是/否權(quán)限3表5 讀者信息表字段名類型及長度說明備注PIDvarchar(50)借書證編號主關(guān)鍵字PNamevarchar(50)姓名PSexvarchar(50)性別PPhonevarchar(50)電話PNvarchar(50)身份證PCodevarchar(50)密碼PMoneyint罰款identityvarchar(50)身份PRemarkvar

17、char(50)備注sys是/否權(quán)限表6 圖書類型表字段名類型及長度說明備注TID自動編號系統(tǒng)自動生產(chǎn)編號主關(guān)鍵字typevarchar(50)類型tRemarkvarchar(50)類型描述數(shù)據(jù)庫關(guān)系圖體現(xiàn)了數(shù)據(jù)庫各個表之間的聯(lián)系,直觀而清晰為系統(tǒng)的開發(fā)提供了方便。對于上述幾個表,他們的關(guān)系圖2所示圖2 數(shù)據(jù)庫關(guān)系圖2程序設(shè)計(jì)我們總會想到我們在圖書館借書時,一個是管理員可以登錄界面,還有就是讀者自己也能登錄系統(tǒng)進(jìn)行信息的查看。在設(shè)計(jì)時,需要根據(jù)使用者的類型來制作,在這里可以使用來個單選按鈕來讓用戶進(jìn)行選擇,在選擇用戶后,我們通過文本框中用戶編碼和密碼,然后通過確定按鈕的添加點(diǎn)擊來對比文本框中

18、的信息與數(shù)據(jù)庫中的信息是否相符,是否能夠登錄系統(tǒng)。如圖3:圖3 登錄界面代碼如下:private void btAdd_Click(object sender, System.EventArgs e)if(name.Text.Trim()=""|password.Text.Trim()="") /由判斷文本框中的內(nèi)容給出相應(yīng)提示MessageBox.Show("請輸入用戶名和密碼","提示");elseoleConnection1.Open(); /打開數(shù)據(jù)庫OleDbCommand cmd=new OleDbCo

19、mmand("",oleConnection1); /定義命令對象if (radioManage.Checked=true) /判斷選擇的用戶是否是管理員string sql="select * from manager where MName='"+name.Text.Trim()+"' and MCode='"+password.Text.Trim()+"'" /SQL語句表示選擇出與文本框中已知條件相同的管理員的相關(guān)信息cmd.CommandText=sql;if (null!

20、=cmd.ExecuteScalar()this.Visible=false; /隱藏登錄窗口main main=new main();/創(chuàng)建并打開主界面main.Tag=this.FindForm();OleDbDataReader dr;cmd.CommandText=sql;dr=cmd.ExecuteReader();dr.Read();main.menuItem1.Visible=(bool)(dr.GetValue(2);/與上一行相同,都是由通過對數(shù)據(jù)的讀取和核對將管理員能夠操作的界面顯示出來main.statusBarPanel2.Text=name.Text.Trim();m

21、ain.statusBarPanel6.Text="管理員"/將單選按鈕中選擇的內(nèi)容顯示在主界面下方的statusBarPanel中main.ShowDialog(); elseMessageBox.Show("用戶名或密碼錯誤","警告");/選擇讀者的代碼如同管理員的一樣在設(shè)計(jì),應(yīng)該設(shè)計(jì)一個主界面,在主界面中,可以添加一個主菜單,將每個相同類型的共能夠放在同一個功能區(qū)中,然后可以設(shè)置下拉式菜單來添加各個不同的功能。同時,每個功能能夠連接到屬于每個功能的界面上。如圖4:圖4 主界面代碼如下:private void menuItem

22、8_Click(object sender, System.EventArgs e)addUser = new AddUser(); /建立新的界面for(int x=0;x<this.MdiChildren.Length;x+)Form tempChild = (Form)this.MdiChildrenx;tempChild.Close();addUser.MdiParent = this;addUser.WindowState = FormWindowState.Maximized;addUser.Show();在設(shè)計(jì)好主界面后,就開始設(shè)計(jì)功能窗體添加用戶,設(shè)計(jì)時,需要將文本框中的

23、信息通過Insert語句加入數(shù)據(jù)庫中的manager表中,insert語句編寫時,需要一一對應(yīng)字段,如圖5:圖5 添加用戶代碼如下:private void btAdd_Click(object sender, System.EventArgs e)if(textName.Text.Trim()=""|textPassword.Text.Trim()=""|textPWDNew.Text.Trim()=""|radioManage.Checked=false&&radioWork.Checked=false)/pa判斷

24、要填文本框中的信息是否都填寫好MessageBox.Show("請輸入完整信息!","警告");elseif (textPassword.Text.Trim()!=textPWDNew.Text.Trim()/判斷兩次輸入的密碼是否一致MessageBox.Show("兩次密碼輸入不一致!","警告"); else;/打開數(shù)據(jù)庫, 創(chuàng)建操作ACccess數(shù)據(jù)庫的Command對象string sql = "select * from manager where MName = '"+te

25、xtName.Text.Trim()+"'"cmd.CommandText = sql;/獲取或設(shè)置欲對數(shù)據(jù)源執(zhí)行的SQL命令、存儲過程名稱、數(shù)據(jù)庫名稱if (null = cmd.ExecuteScalar()if (radioManage.Checked=true)/通過判斷單選按鈕的選擇來確定insert語句中的相應(yīng)內(nèi)容sql = "insert into manager "+"values ('"+textName.Text.Trim()+"','"+textPWDNew.T

26、ext.Trim()+"',true,false,false)"elsesql = "insert into manager "+"values ('"+textName.Text.Trim()+"','"+textPWDNew.Text.Trim()+"',false,true,false)"/執(zhí)行SQL語句MessageBox.Show("添加用戶成功!","提示");this.Close(); 瀏覽讀者,有時管

27、理員需要瀏覽一些讀者的信息,設(shè)計(jì)用戶列表時,我們主要是通過dataGridView的數(shù)據(jù)綁定,將用戶信息顯示在列表框中,在設(shè)計(jì)時,可以對每個用戶進(jìn)行權(quán)限設(shè)置,權(quán)限1表示管理的權(quán)限,權(quán)限2表示工作人員權(quán)限,權(quán)限3表示查詢的權(quán)限如圖6:圖6 用戶列表代碼如下:private void User_Load(object sender, System.EventArgs e);/打開數(shù)據(jù)庫string sql = "select MName as 用戶名,MCode as 密碼,manage as 權(quán)限,work as 權(quán)限,query as 權(quán)限from manager"/查詢m

28、anager表中的所有字段;/定義命令對象ds = new DataSet();/創(chuàng)建DataSet對象結(jié)構(gòu)ds.Clear();adp.Fill(ds,"user"); /填充數(shù)據(jù)到DataSet對象 的“MName”表中dataGrid1.DataSource = ds.Tables"user".DefaultView; /定義Datatable對象dataGrid1.CaptionText = "共有"+ds.Tables"user".Rows.Count+"條記錄"oleConnecti

29、on1.Close();圖書類別管理,有時圖書館新增新的類別的圖書,管理員需要添加圖書類別。設(shè)計(jì)時,在文本框中輸入相應(yīng)的信息,通過SQL語句將文本框中的信息插入到數(shù)據(jù)表中。如圖7:圖7 添加圖書類型代碼如下:private void Type_Load(object sender, System.EventArgs e)/通過數(shù)據(jù)綁定和鏈接顯示出圖書 類別;/打開數(shù)據(jù)庫string sql = "select type as 類型,tRemark as 類型描述,TID as 類型編號from type"/ 創(chuàng)建操作ACccess數(shù)據(jù)庫的Command對象,創(chuàng)建DataSe

30、t對象結(jié)構(gòu),填充數(shù)據(jù)到DataSet對象的“MName”表中, 定義Datatable對象,關(guān)閉數(shù)據(jù)庫private void btAdd_Click(object sender, System.EventArgs e)addType = new AddType();/創(chuàng)建新頁面并跳出新頁面addType.ShowDialog();private void btAdd_Click(object sender, System.EventArgs e)if (textName.Text.Trim()=""|textRemark.Text.Trim()="")

31、MessageBox.Show("請?zhí)顚懲暾畔?quot;,"提示"); /判斷文本框中信息是否為空else; /打開數(shù)據(jù)庫string sql = "select * from type where type='"+textName.Text.Trim()+"'" / 創(chuàng)建操作ACccess數(shù)據(jù)庫的Command對象if (null!=cmd.ExecuteScalar()MessageBox.Show("類型重復(fù),請重新輸入!","提示");elsesql=&qu

32、ot;insert into type (type,tRemark) values ('"+textName.Text.Trim()+"','"+textRemark.Text.Trim()+"')" /獲取或設(shè)置欲對數(shù)據(jù)源執(zhí)行的SQL命令、存儲過程名稱、數(shù)據(jù)庫名稱textName.Clear();/清空文本框; /清空文本框;/關(guān)閉數(shù)據(jù)庫有時圖書館里的某種圖書類型退架時,管理員需要刪除該圖書的類型,設(shè)計(jì)時,可以通過數(shù)據(jù)庫的連接,讀取數(shù)據(jù),然后用SQL語句進(jìn)行記錄刪除。如圖8:圖8 刪除圖書類型代碼如下:priv

33、ate void btDel_Click(object sender, System.EventArgs e)if(dataGrid1.CurrentRowIndex>=0&&dataGrid1.DataSource!=null&&dataGrid1dataGrid1.CurrentCell!=null)oleConnection1.Open();string sql="select * from book where type='"+ds.Tables"type".RowsdataGrid1.Current

34、Cell.RowNumber0.ToString().Trim()+"'"/定義命令對象,并執(zhí)行語句OleDbDataReader dr;/讀取數(shù)據(jù)dr = cmd.ExecuteReader();if (dr.Read()MessageBox.Show("刪除類型'"+ds.Tables"type".RowsdataGrid1.CurrentCell.RowNumber0.ToString().Trim()+"'失敗,請先刪掉該類型圖書!","提示");dr.Close

35、(); elsedr.Close();sql = "delete * from type where type not in(select distinct type from book) and TID "+"= "+ds.Tables"type".RowsdataGrid1.CurrentCell.RowNumber2.ToString().Trim()+""cmd.CommandText = sql;cmd.ExecuteNonQuery();MessageBox.Show("刪除類型'&q

36、uot;+ds.Tables0.RowsdataGrid1.CurrentCell.RowNumber0.ToString().Trim()+"'成功","提示");oleConnection1.Close(); elsereturn;對讀者的管理,圖書信息的管理代碼就如圖書類型的添加刪除修改相似,在這里就不一一介紹。借書和還書管理,在讀者借書時,管理員要根據(jù)要求填寫相應(yīng)的信息。設(shè)計(jì)過程中,通過數(shù)據(jù)綁定,在圖書證號輸入后,提取數(shù)據(jù)將讀者表中的相應(yīng)記錄提取出來顯示在,借閱者信息的文本框中,圖書信息也就如讀者信息一樣提取數(shù)據(jù)顯示出來,借書操作就是通過

37、SQL語句的編寫將新的借書記錄添加到借書表中。如圖9:圖9 借書代碼如下:private void textPID_KeyDown(objectsender,System.Windows.Forms.KeyEventArgs e) ; /打開數(shù)據(jù)庫string sql1 = "select PName as 姓名,PSex as 性別,PN as 身份證,PMoney as 罰款,identity as 身份" +"from person where PID='" + textPID.Text.Trim() + "'"

38、string sql3 = "select BID from bookOut where PID = '" + textPID.Text.Trim() + "'" ; /定義命令對象 ; /創(chuàng)建DataSet對象結(jié)構(gòu),填充數(shù)據(jù)到DataSet對象的“PName和BID”表中,定義Datatable對象if (ds.Tables0.Rows.Count != 0)textPName.Text = ds.Tables"person".RowsdataGrid2.CurrentCell.RowNumber0.ToString

39、().Trim();/通過綁定,將數(shù)據(jù)庫中與編號相對應(yīng)的信息提取出來顯示在相應(yīng)的文本框中for (int x = 0; x < ds.Tables"bookid".Rows.Count; x+)string sql2 = "select book.BID as 圖書編號,BName as 圖書名,BWriter as 作者,BPublish as 出版社,BDate as 出版日期,BPrice as 價(jià)格," +"type as 類型,ODate as 借書日期,(select longTime from identityinfo wh

40、ere identity=(select identity from person where PID='" + textPID.Text.Trim() + "')" +" as 最長借書時間,dateAdd('m',最長借書時間,ODate) as 應(yīng)還日期from book,bookOut where book.BID=bookOut.BID and book.BID = '" + ds.Tables"bookid".Rowsx0 + "'" +&quo

41、t; and PID='" + textPID.Text.Trim() + "'"OleDbDataAdapter adp2 = new OleDbDataAdapter(sql2, oleConnection1);adp2.Fill(ds, "bookout");dataGrid1.DataSource = ds.Tables"bookout".DefaultView;dataGrid1.CaptionText = "已借圖書" + ds.Tables"bookout"

42、;.Rows.Count + "本"/關(guān)閉數(shù)據(jù)庫private void btOut_Click(object sender, System.EventArgs e)/借書if (textPID.Text.Trim()=""|textBID.Text.Trim()="")MessageBox.Show("請輸入完整信息","提示");elseoleConnection1.Open();string sql="select * from bookOut where BID='&q

43、uot;+textBID.Text.Trim()+"' and PID='"+textPID.Text.Trim()+"'"/定義命令對象,在數(shù)據(jù)庫中執(zhí)行上面的SQL語句 if (null!=cmd.ExecuteScalar()MessageBox.Show("你已經(jīng)借了一本該書","提示");elsesql = "insert into bookOut (BID,PID,ODate) values ('"+textBID.Text.Trim()+"&

44、#39;,'"+textPID.Text.Trim()+"','"+date1.Text.Trim()+"')" /獲取或設(shè)置欲對數(shù)據(jù)源執(zhí)行的SQL命令、存儲過程名稱、數(shù)據(jù)庫名稱cmd.ExecuteNonQuery();/關(guān)閉數(shù)據(jù)庫MessageBox.Show("借出成功","提示"); 在讀者還書時,管理員也應(yīng)根據(jù)要求填寫相應(yīng)的信息。還書程序的設(shè)計(jì)就如同借書程序設(shè)計(jì)一樣的原理。如圖10:圖10 還書代碼如下:private void btIn_Click(object

45、 sender, System.EventArgs e)/還書if (textBID.Text.Trim()=null) MessageBox.Show("請?zhí)顚憟D書編號","提示");else;/打開數(shù)據(jù)庫string sql = "delete * from bookOut where BID = '"+textBID.Text.Trim()+"',and PID='"+textPID.Text.Trim()+"'"/定義命令對象,并執(zhí)行SQL語句cmd.Ex

46、ecuteNonQuery();MessageBox.Show("還書成功","提示");讀者在進(jìn)入系統(tǒng)后,能夠查看自己所需的圖書是否圖書庫存還有,也能夠查看自己已經(jīng)借過多少圖書以及自己這些圖書在什么時候之前還,同樣讀者還可以隨時修改自己的密碼,這樣有助于自己密碼的安全性的維護(hù)。查詢圖書,設(shè)計(jì)時,應(yīng)該考慮到,讀者有些時候查詢圖書時并不能夠就記住圖書的名字,因此,我們不僅要通過圖書名來查詢,還要能夠通過圖書編號和作者名來查詢自己所需的圖書,在編寫代碼時,通過文本框中輸入的信息來編寫相應(yīng)的SQL語句,然后通過數(shù)據(jù)綁定來將圖書的信息顯示在datagridvie

47、w中。如圖11:圖11 圖書查詢代碼如下:private void btQuery_Click(object sender, System.EventArgs e)string sql1 = "(BNum-(select count(*) from bookOut where "string sql = "select BID as 圖書編號,BName as 圖書名,BWriter as 作者,BPublish as 出版社,BDate as 出版日期,BPrice as 價(jià)格,"+"BNum as 數(shù)量,type as 類型,BRemark

48、 as 備注, "if (textID.Text.Trim() != "")sql1 = sql1+" BID= "+"'"+textID.Text.Trim()+"') as 庫存數(shù)量"sql = sql+sql1+"from book where BID= "+"'"+textID.Text.Trim()+"'"else if (textName.Text.Trim() != "");/同上

49、else if (textWriter.Text.Trim() != "");/同上elseMessageBox.Show("請輸入查詢條件","提示");return;oleConnection1.Open();/打開數(shù)據(jù)庫;/定義命令對象,并執(zhí)行語句;/創(chuàng)建DataSet對象結(jié)構(gòu)ds.Clear();/定義Datatable對象,并初始化表dataGrid1.DataSource=ds.Tables0.DefaultView;dataGrid1.CaptionText="共有"+ds.Tables0.Rows.

50、Count+"條查詢記錄"oleConnection1.Close();查詢自己所借圖書記錄,借閱者信息及借閱情況的查詢就如同管理員瀏覽用戶一樣,通過對dataGrid的數(shù)據(jù)綁定,編寫SQL語句將借閱者信息和借閱者的借書情況查詢。如圖12:圖12 借閱信息用戶密碼修改,有時,為了保證帳號的安全性,使用者可以修改自己的密碼。設(shè)計(jì)時,通常我們需要先填寫原先的密碼,然后才能輸入新密碼,在輸入新密碼后還需確定新密碼,然后通過SQL語句將新的密碼修改到數(shù)據(jù)庫中。如圖13:圖13 修改密碼代碼如下:private void btSave_Click(object sender, Sys

51、tem.EventArgs e)if(textName.Text.Trim()=""|textPWD.Text.Trim()=""|textPWDNew.Text.Trim()=""|textPWDNew2.Text.Trim()="")MessageBox.Show("請?zhí)顚懲暾畔ⅲ?quot;,"提示");elseoleConnection1.Open(); /定義命令對象string sql1 = "select * from person where PID=

52、9;"+textName.Text.Trim()+"' and PCode='"+textPWD.Text.Trim()+"'"/管理員的select語句就和普通用戶的書寫一樣if (label5.Text = "管理員")cmd.CommandText = sql2;/執(zhí)行語句elsecmd.CommandText = sql1;if (null!=cmd.ExecuteScalar()if (textPWDNew.Text.Trim()!=textPWDNew2.Text.Trim()Messag

53、eBox.Show("兩次密碼輸入不一致!","警告");elsesql1 = "update person set PCode='"+textPWDNew.Text.Trim()+"' where PID='"+textName.Text.Trim()+"'"/sql2同上if (label5.Text = "管理員"); /執(zhí)行語句else; /執(zhí)行語句cmd.ExecuteNonQuery();MessageBox.Show("密碼修改成功!","提示");this.Close();elseMessageBox.Show("密碼錯誤!","

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論