版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告學(xué) 院: 理學(xué)院 班 級: 數(shù)學(xué)系 課 題:基于Visual C#.NET的圖書館管理系統(tǒng) 指導(dǎo)教師: 王楊 組員:學(xué)號 姓名 職責(zé) 翟曉凱 DBA 、系統(tǒng)設(shè)計(jì)員、系統(tǒng)開發(fā)員 閆好博 系統(tǒng)分析員、系統(tǒng)調(diào)查員 劉 盾 系統(tǒng)分析員、系統(tǒng)測試員 李 陽 項(xiàng)目管理員、系統(tǒng)調(diào)查員 王俊棋 系統(tǒng)測試員、系統(tǒng)調(diào)查員 黎校剛 項(xiàng)目管理員、系統(tǒng)設(shè)計(jì)員 靳 萌 系統(tǒng)分析員、系統(tǒng)設(shè)計(jì)員高校圖書館管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)1 圖書館管理系統(tǒng)需求分析1.1引言 圖書館管理系統(tǒng)一般主要包括對圖書作者和出版社等在內(nèi)的基礎(chǔ)數(shù)據(jù)管理,圖書進(jìn)銷存管理,圖書借閱管理,圖書歸還管理,讀者管理,統(tǒng)計(jì)打印和系統(tǒng)管理等幾部分。
2、通過實(shí)際調(diào)查,本圖書館管理設(shè)計(jì)系統(tǒng)主要具備以下功能: 系統(tǒng)使用人員較多,通過“讀者管理”功能模塊實(shí)現(xiàn)1.“讀者類型設(shè)置”,用于設(shè)置讀者的類型及相關(guān)的信息,內(nèi)容包括類型、圖書冊數(shù)、期刊冊數(shù)、續(xù)借次數(shù)、限制圖書、限制期刊等。 2.“讀者檔案管理”,用于設(shè)置讀者相關(guān)的信息,內(nèi)容包括編號、條形碼、姓名、性別、類型、出生日期、有效證件、證件號碼、聯(lián)系方式、登記日期、有效期至、操作員、備注、圖書借閱次數(shù)、期刊借閱次數(shù)、是否掛失等。 系統(tǒng)應(yīng)提供對圖書相關(guān)信息的管理功能,通過“圖書管理”功能模板實(shí)現(xiàn): 1.“圖書類型設(shè)置”,用于設(shè)置圖書的類型及相關(guān)的信息,內(nèi)容包括類型名稱,可借天數(shù)等。 2.“圖書檔案管理”,
3、用于設(shè)置圖書相關(guān)的信息,內(nèi)容包括編號、條形碼、書名、版次、類型、作者、譯者、ISBN、出版社、圖書開本、價(jià)格、頁碼、書架名稱、現(xiàn)存量、庫存總量、入庫時(shí)間、操作員、簡介、借出次數(shù)、是否注銷等。 管理圖書借出歸還等功能,通過“圖書流通管理”功能模塊實(shí)現(xiàn): 1.“圖書借閱”,用于登記讀者借閱圖書的記錄并減少圖書在庫的庫存,登記內(nèi)容包括借閱編號、圖書編號、讀者編號、押金、借閱時(shí)間、應(yīng)還時(shí)間、操作員等。 2.“圖書歸還”用于登記讀者歸還圖書的記錄并增加圖書在庫的庫存,登記內(nèi)容包括歸還編號、圖書編號、讀者編號、退還押金、歸還時(shí)間、操作員等。 3.“圖書續(xù)借”,用于登記讀者到期圖書的續(xù)借記錄。 4.“圖書罰
4、款”,用于對圖書超期、丟失等情況的罰款管理,內(nèi)容包括罰款編號、圖書編號、讀者編號、罰款日期、應(yīng)罰金額、實(shí)收金額、是否交款、備注等。1.2 目標(biāo)與任務(wù) 圖書館管理系統(tǒng)數(shù)據(jù)字典: (1)數(shù)據(jù)項(xiàng)與數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)項(xiàng)是不可再分的數(shù)據(jù)單位,數(shù)據(jù)結(jié)構(gòu)反映了數(shù)據(jù)之間的組合關(guān)系,對本系統(tǒng)的數(shù)據(jù)項(xiàng)與數(shù)據(jù)結(jié)構(gòu)的描述在系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)與實(shí)施階段能夠直接體現(xiàn)出來,這里不在一一列出。(2)處理過程處理過程名說明輸入輸出讀者類別設(shè)置管理讀者類別信息新增,修改,刪除讀者類別讀者類型讀者檔案管理管理讀者信息新增,修改,刪除讀者信息讀者信息圖書類別設(shè)置管理圖書類別信息新增,修改,刪除圖書類別圖書類型圖書檔案管理管理圖書信息新增,修改
5、,刪除圖書信息圖書信息圖書征訂管理管理征訂圖書信息新增,修改,刪除征訂信息圖書征訂圖書借閱管理借閱圖書讀者信息,圖書信息圖書借閱圖書歸還歸還圖書讀者信息,圖書信息圖書歸還圖書管理系統(tǒng)數(shù)據(jù)流圖:頂層數(shù)據(jù)流圖:管理員 圖書館管理系統(tǒng)感覺 管理員信息 讀者信息 圖書信息 第2層數(shù)據(jù)流圖:(圖書借閱,圖書歸還,管理員查詢,管理員修改)圖書借閱圖書信息表借閱信息表 讀者信息表管理員 修改讀者信息 新讀者信息 查詢 修改圖書信息 新圖書信息罰款信息表圖書信息表圖書歸還讀者信息表第3層數(shù)據(jù)流圖圖書信息表:(圖書借閱) 續(xù)借單 更借書登記管理員 新有效檢驗(yàn) 無效借書 有效借書單 借閱信息表借閱信息表第3層數(shù)據(jù)
6、流圖:(圖書讀者信息表歸還) 逾期清單管理員 更新 有效檢驗(yàn)圖書信息表還書登記 收費(fèi)更新罰款信息表第3層數(shù)據(jù)流圖:(管理員查詢圖書信息,查詢讀者信息,查詢借閱信息,查詢罰款信息)讀者信息表借閱信息表管理員查詢檢驗(yàn) 無效信息 有效信息圖書信息表罰款信息表 查詢結(jié)果 第3層數(shù)據(jù)流圖:(管理員添加,刪除,修改讀者信息)添加讀者信息 更新管理員讀者信息表刪除讀者信息修改讀者信息 更新第3層數(shù)據(jù)流圖:(管理員添加,刪除,修改圖書信息)添加圖書信息 更新管理員圖書信息表修改圖書信息刪除圖書信息2 概念結(jié)構(gòu)設(shè)計(jì)2.1 引言 系統(tǒng)開發(fā)的總體目標(biāo)是實(shí)現(xiàn)圖書館管理的系統(tǒng)化和自動化,縮短借閱者的等待時(shí)間,減輕工作人
7、員的工作量,方便工作人員對它的操作,提高管理的質(zhì)量和水平,做到高效、智能化管理,從而達(dá)到提高圖書管理效率的目的。 主要任務(wù)是對讀者信息、管理員信息、圖書資料信息、借閱信息、歸還圖書信息、罰款信息的基本信息的操作及外理。 概念設(shè)計(jì)階段主要是將需求分析階段得到的用戶需求抽象為信息結(jié)構(gòu)(概念模型)的過程,它是整個數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵。 2.2 目標(biāo)與任務(wù)(1)選擇中層數(shù)據(jù)流為切入點(diǎn),通常選擇實(shí)際系統(tǒng)中的子系統(tǒng);(2)設(shè)計(jì)分E-R圖,即各子模塊的E-R圖;(3)生成初步E-R圖,通過合并方法,做到各子系統(tǒng)實(shí)體、屬性、聯(lián)系統(tǒng)一;(4)生成全局E-R圖,通過消除沖突等方面。在本圖書管理系統(tǒng)中,從第3層數(shù)據(jù)流程
8、圖下手。分析各3層數(shù)據(jù)流圖和數(shù)據(jù)字典,知道各個系統(tǒng)功能圍繞“讀者”、“管理員”和“圖書”的處理。根據(jù)實(shí)體與屬性間的兩條準(zhǔn)則:作為“屬性”,不能再具有需要描述的性質(zhì)?!皩傩浴辈荒芘c其他實(shí)體具有聯(lián)系。2.3 成果(1) 根據(jù)不同的對象,從第三層數(shù)據(jù)流圖入手,分別畫出各分E-R圖 (a)從圖書借閱和圖書歸還流圖抽象出如下E-R圖讀者 m m m 罰款借閱歸還 1管理員圖書 n n (b)從管理員添加修改刪除讀者信息流圖抽象出E-R圖讀者管理員管理 1 m (c)從管理員添加修改刪除圖書信息流圖抽象出E-R圖維護(hù)圖書管理員 1 m (2) 合并各分E-R圖,消除屬性沖突,命名沖突,結(jié)構(gòu)沖突等三類沖突,
9、生成初步E-R圖,再消除不必要冗余,得到基本E-R圖如下:讀者類別 管理員罰款屬于 1 讀者 m m 1 維護(hù) m 1書架借閱 m n m屬于讀者歸還圖書 1 m n m(3) E-R圖的各實(shí)體屬性如下:讀者類別:讀者類型(類型,圖書冊數(shù),期刊冊數(shù),續(xù)借次數(shù),限制期刊,限制圖書)讀者:讀者(條形碼,編號,姓名,性別,出生日期,有效證件,證件號碼,聯(lián)系方式,登記日期,有效期至,操作員,備注,圖書借閱次數(shù),期刊借閱次數(shù),是否掛失)管理員:管理員(編號,名稱,密碼,圖書管理,期刊管理,讀者管理,圖書借還,期刊借還)圖書:圖書(條形碼,編號,書名,類型,作者,譯者,ISBN,出版社,價(jià)格,頁碼,現(xiàn)存量
10、,庫存總量,入庫時(shí)間,簡介,借出次數(shù),是否注銷)書架:書架(編號,書架名稱)3 邏輯結(jié)構(gòu)設(shè)計(jì)3.1 目標(biāo)與任務(wù) 概念結(jié)構(gòu)是獨(dú)立于任何一種數(shù)據(jù)模型的信息結(jié)構(gòu)。邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖轉(zhuǎn)換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。3.2 將E-R圖轉(zhuǎn)換為關(guān)系模型實(shí)體型轉(zhuǎn)換為關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。對于實(shí)體間的聯(lián)系則有以下不同的情況:(1)一個m:n聯(lián)系轉(zhuǎn)換為一個關(guān)系模式。與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為各實(shí)體碼的組合。(2) 一個1:n聯(lián)系可以轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,也可以
11、與n端對應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為n端實(shí)體的碼。(3)一個1:1聯(lián)系可以轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,也可以與任意一端對應(yīng)的關(guān)系模式合并。三個或三個以上實(shí)體間的一個多元聯(lián)系可以轉(zhuǎn)換為一個關(guān)系模式。與該多元聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為各實(shí)體碼的組合(4)具有相同碼的關(guān)系模式可合并。 由于讀者類別與讀者、書架與圖書的聯(lián)系方式是1:n(一對多),可以將其之間的聯(lián)系與n端實(shí)體讀者、圖書合并,管理員與圖書之間的維護(hù)聯(lián)系也是1:n(一對多),同樣也將其之間的聯(lián)系與n端實(shí)體
12、合并,而讀者與圖書之間的借閱和歸還聯(lián)系方式則是m:n(多對多),這樣要把它們之間的聯(lián)系轉(zhuǎn)化為獨(dú)立的關(guān)系模式,讀者與管理員之間的罰款聯(lián)系是m:1(多對一),將其聯(lián)系與n端實(shí)體合并,具體的基本E-R圖向關(guān)系模型的轉(zhuǎn)化如下: 讀者:讀者(條形碼,編號,姓名,性別,類型,出生日期,有效證件,證件號碼,聯(lián)系方式,登記日期,有效期至,操作員,備注,圖書借閱次數(shù),期刊借閱次數(shù),是否掛失) 圖書:圖書(條形碼,編號,書名,類型,作者,譯者,ISBN,出版社,價(jià)格,頁碼,書架名稱,現(xiàn)存量,庫存總量,入庫時(shí)間,管理員,簡介,借出次數(shù),是否注銷) 管理員:管理員(編號,名稱,密碼,圖書管理,期刊管理,讀者管理,圖書
13、借還,期刊借還) 讀者類別:讀者類別:讀者類型(類型,圖書冊數(shù),期刊冊數(shù),續(xù)借次數(shù),限制期刊,限制圖書) 借閱信息:圖書借閱(借閱編號,讀者編號,圖書編號,借閱時(shí)間,應(yīng)還時(shí)間,續(xù)借次數(shù),操作員,狀態(tài))歸還信息:圖書歸還(歸還編號,讀者編號,圖書編號,歸還時(shí)間,退還押金,操作員)罰款信息:圖書罰款(罰款編號,讀者編號,圖書編號,罰款日期,應(yīng)罰金額,實(shí)收金額)3.3 數(shù)據(jù)模型的優(yōu)化分析知上述關(guān)系模式不存在非主屬性對主屬性的部分函數(shù)依賴,也不存在傳遞函數(shù)依賴,已經(jīng)達(dá)到了3NF,數(shù)據(jù)冗余情況也基本消除,已經(jīng)足以滿足用戶需要,無須繼續(xù)優(yōu)化。4 數(shù)據(jù)庫的物理設(shè)計(jì)數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)與存取方法稱為數(shù)
14、據(jù)庫的物理結(jié)構(gòu),它依賴于選定的數(shù)據(jù)庫管理系統(tǒng)。為一個給定的邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用要求的物理結(jié)構(gòu)的過程就是數(shù)據(jù)庫的物理設(shè)計(jì)。本圖書館管理系統(tǒng)在綜合考慮廣大用戶的要求以及實(shí)際應(yīng)用后,在關(guān)系數(shù)據(jù)庫中為某些關(guān)系建立索引存取方法,在實(shí)際運(yùn)作中做到了快速存取數(shù)據(jù)庫中的數(shù)據(jù),滿足用戶的多種應(yīng)用要求,具體建立索引的相關(guān)信息將在數(shù)據(jù)庫實(shí)施中描述。5 圖書管理系統(tǒng)數(shù)據(jù)庫的實(shí)施 根據(jù)以上需求分析,一個基本的圖書館管理系統(tǒng)數(shù)據(jù)庫中大致包括20多張表,分別存放相應(yīng)子功能的數(shù)據(jù)信息,其中“讀者信息”和“圖書信息”表是關(guān)鍵的表,用于存放圖書館讀者的信息和文獻(xiàn)的信息,圖書館管理系統(tǒng)實(shí)際上就是對讀者和文獻(xiàn)的管理。其他涉
15、及讀者信息和文獻(xiàn)信息的表都只記錄相應(yīng)的編號,并根據(jù)作為外鍵的“編號”字段相對應(yīng)。因此“讀者信息”、“圖書信息”和其他表間的關(guān)系是1:N的關(guān)系。5.1 構(gòu)建開發(fā)環(huán)境由于軟件版本及電腦配置,各種兼容性問題,最終確定使用相對可以完整安裝運(yùn)行的Visual Studio 2005與SQL Server 2008軟件。圖書館管理系統(tǒng)開發(fā)環(huán)境如下:開發(fā)環(huán)境:Visual Studio 2005開發(fā)語言:Visual C#后臺數(shù)據(jù)庫:SQL Server 2008開發(fā)平臺:Windows XP分辨率:最佳效果1024*7685.2創(chuàng)建數(shù)據(jù)庫 打開SQL Server企業(yè)管理器,新建一個數(shù)據(jù)庫,名稱為libb
16、ook。注意到數(shù)據(jù)文件的位置,以便分離數(shù)據(jù)庫后將所需要的MDF文件及其日志文件存儲在自己的盤里,方便下次使用時(shí)附加所需要的數(shù)據(jù)庫。5.3 創(chuàng)建表(各個表的主鍵設(shè)置以及需求分析階段的數(shù)據(jù)項(xiàng)與數(shù)據(jù)結(jié)構(gòu)在截圖中體現(xiàn)) 在新建的數(shù)據(jù)庫libook下建立以下的表(表名即為數(shù)據(jù)結(jié)構(gòu)名,列的相關(guān)設(shè)置即體現(xiàn)數(shù)據(jù)項(xiàng)的描述):1.出版社(保存圖書對應(yīng)出版社的基礎(chǔ)信息) 2.讀者類型(保存讀者類型及相關(guān)信息)3.期刊丟失(保存期刊丟失記錄)4.供應(yīng)商(保存圖書供應(yīng)商信息)5.讀者信息(保存讀者的各種信息)6.管理員(保存用戶信息)7.期刊罰款(保存期刊罰款記錄)8.期刊歸還(保存期刊歸還記錄)9.期刊借閱(保存期刊
17、借閱記錄)10.期刊類型(保存期刊類型及相關(guān)信息)11.期刊注銷(保存期刊注銷記錄)12.書架(保存圖書館內(nèi)數(shù)據(jù)的基本信息)13.期刊信息(保存期刊信息)14.期刊征訂(保存期刊征訂入庫記錄)15.圖書丟失(保存圖書丟失記錄)16.圖書罰款(保存圖書罰款記錄) 17.圖書館(保存圖書館基礎(chǔ)信息)18.圖書歸還(保存圖書歸還記錄)19.圖書借閱(保存圖書借閱記錄)20.圖書類型(保存圖書類型及相關(guān)信息)21.圖書信息(保存圖書信息)22.圖書征訂(保存圖書征訂入庫記錄)23.圖書注銷(保存圖書注銷記錄)24.文獻(xiàn)尺寸(保存文獻(xiàn)尺寸信息)25.文獻(xiàn)等級(保存文獻(xiàn)等級信息)26.文獻(xiàn)印刷(保存文獻(xiàn)印
18、刷信息)27.文獻(xiàn)語系(保存文獻(xiàn)印刷信息)28.文獻(xiàn)附件(保存文獻(xiàn)附件信息)5.4 建立表與表的關(guān)系,外鍵約束進(jìn)入設(shè)計(jì)表界面,右擊,建立關(guān)系,表與表關(guān)系建立如下:關(guān)系名主鍵表外鍵表主鍵表列外鍵表列圖書丟失_圖書編號_fk圖書信息圖書丟失編號圖書編號圖書歸還_圖書編號_fk圖書信息圖書歸還編號圖書編號圖書借閱_圖書編號_fk圖書信息圖書借閱編號圖書編號圖書歸還_圖書編號_fk圖書信息圖書歸還編號圖書編號FK_圖書征訂_圖書信息圖書信息圖書征訂編號圖書編號圖書注銷_圖書編號_fk圖書信息圖書注銷編號圖書編號FK_圖書罰款_讀者信息讀者信息圖書罰款編號讀者編號期刊丟失_期刊編號_fk期刊信息期刊丟失
19、編號期刊編號FK_期刊罰款_讀者信息讀者信息期刊罰款編號讀者編號FK_讀者信息_讀者類型讀者類型讀者信息類型類型5.5 建立索引(物理設(shè)計(jì)階段的存取方法)進(jìn)入設(shè)計(jì)表界面,右擊,建立各個表的索引,各個表索引的建立如下:表名索引名列名順序書架PK_書架編號升序出版社PK_出版社出版社編號升序圖書丟失PK_圖書丟失丟失編號升序圖書信息PK_圖書信息編號升序圖書借閱PK_圖書借閱借閱編號升序圖書歸還PK_圖書歸還歸還編號升序圖書征訂PK_圖書征訂征訂編號升序圖書注銷PK_圖書注銷注銷編號升序圖書類型PK_圖書類型類型編號升序圖書罰款PK_圖書罰款罰款編號升序期刊丟失PK_期刊丟失丟失編號升序期刊信息P
20、K_期刊信息編號升序期刊借閱PK_期刊借閱借閱編號升序期刊歸還PK_期刊歸還歸還編號升序期刊征訂PK_期刊征訂征訂編號升序期刊注銷PK_期刊注銷注銷編號升序期刊類型PK_期刊類型類型編號升序期刊罰款PK_期刊罰款罰款編號升序用戶清單PK_用戶清單_0E391C95用戶編號升序讀者信息PK_讀者信息編號升序讀者類型PK_讀者類型類型升序5.6 創(chuàng)建存儲過程 在數(shù)據(jù)庫libbook存儲過程目錄下新建“sf_圖書征訂”,“sf_圖書借閱”和“sf_圖書歸還”3個存儲過程,從而實(shí)現(xiàn)征訂圖書入庫,借閱圖書出庫和歸還圖書入庫,產(chǎn)生罰款信息等功能,建立這3個存儲過程的文本欄內(nèi)填寫注釋如下:create pr
21、oc sf_圖書借閱asbegin tran-借書出庫,減少圖書庫存量update 圖書信息 set 現(xiàn)存量 = isnull(現(xiàn)存量,0) - 1from 圖書信息 as a, 圖書借閱 as bwhere a.編號=b.圖書編號 and b.狀態(tài)=新借-設(shè)置借閱狀態(tài)update 圖書借閱 set 續(xù)借次數(shù)=0,狀態(tài)=未還where 狀態(tài)=新借commitGOcreate proc sf_圖書歸還 借閱編號 int, 罰款金額 moneyasbegin tran-借書出庫,減少圖書庫存量update 圖書信息 set 現(xiàn)存量 = isnull(現(xiàn)存量,0) + 1from 圖書信息 as a
22、, 圖書借閱 as bwhere a.編號=b.圖書編號 and b.借閱編號=借閱編號- 如果罰金不是0, 在 圖書罰款 中產(chǎn)生記錄if 罰款金額 0insert into 圖書罰款(圖書編號,讀者編號,罰款日期,應(yīng)罰金額,是否交款)select 圖書編號,讀者編號,getdate(), 罰款金額, 0from 圖書借閱 where 借閱編號=借閱編號- 插入圖書歸還表insert into 圖書歸還(圖書編號,讀者編號,歸還時(shí)間)select 圖書編號,讀者編號,getdate()from 圖書借閱 where 借閱編號=借閱編號-設(shè)置借閱狀態(tài)update 圖書借閱 set 狀態(tài)=已還 w
23、here 借閱編號=借閱編號commitGOcreate proc sf_圖書征訂asbegin tran-驗(yàn)收入庫,增加圖書庫存量update 圖書信息 set 庫存總量 = isnull(庫存總量,0) + b.訂購數(shù)量, 現(xiàn)存量 = isnull(現(xiàn)存量,0) + b.訂購數(shù)量, 入庫時(shí)間 = b.驗(yàn)收日期from 圖書信息 as a, 圖書征訂 as bwhere a.編號=b.圖書編號 and b.是否驗(yàn)收=0-設(shè)置圖書征訂記錄的標(biāo)志,標(biāo)志為已驗(yàn)收update 圖書征訂 set 驗(yàn)收日期=getdate(), 是否驗(yàn)收=1where 是否驗(yàn)收=0commitGO6 程序開發(fā)6.1 創(chuàng)
24、建工程(1)啟動Visual Studio 2005,選擇【文件】|【新建】|【項(xiàng)目】,點(diǎn)擊【Visual Studio解決方案】|【空白解決方案】,名稱為圖書館管理系統(tǒng)。(2)單擊打開【解決方案資源管理器】,在其中右擊【解決方案“圖書館管理系統(tǒng)”】,在彈出的快捷菜單中選擇【添加】|【新建項(xiàng)目】命令,在彈出的對話框中的【項(xiàng)目類型】列表框中選擇【Visual C#項(xiàng)目】,在右邊的【模板】列表框中選擇【W(wǎng)indows應(yīng)用程序】選項(xiàng),名稱為“圖書館管理系統(tǒng)”,然后單擊【確定】按鈕,即可生成一個新的工程項(xiàng)目。6.2 ADO.NET數(shù)據(jù)組件的設(shè)置建立數(shù)據(jù)庫應(yīng)用程序過程中,需要經(jīng)常與SQL Server數(shù)
25、據(jù)源進(jìn)行交互。SglConnectin對象管理與數(shù)據(jù)源的連接;SglConunand和SglDataReader可以執(zhí)行簡單的查詢和讀取數(shù)據(jù);5glDataAdapter作為數(shù)據(jù)適配器可以將數(shù)據(jù)從數(shù)據(jù)庫中取出來,放到DataSet以供程序中調(diào)用,也可以提取DataSet中儲存的緩存的更新,將它們提交給數(shù)據(jù)庫。DataSet對象的核心實(shí)際上為數(shù)據(jù)的集合,它類似于Excel中的一個工作簿,可以存儲一個或多個查詢的結(jié)果。本書中與數(shù)據(jù)庫的交互,主要是由這幾個類完成,尤其是SglConnection, SglDataAdapter和DataSet。6.2.1 添加數(shù)據(jù)連接(1)單擊IDE界面的【服務(wù)器資
26、源管理器】,如果后臺SQL Server允許,則會在【服務(wù)器】項(xiàng)下面看到服務(wù)器名稱。 在這里,選中【數(shù)據(jù)連接】項(xiàng),右擊,在彈出的快捷菜單中選擇【添加連接】命令,將彈出如下對話框。選中Microsoft SQL Server,點(diǎn)擊繼續(xù),出現(xiàn)對話框,服務(wù)器添加本地,數(shù)據(jù)庫名添加libbook。打開高級選項(xiàng), 將Workstation ID填寫為localhost,這樣做的目的是為了防止在其他計(jì)算機(jī)中允許程序時(shí),由于SQL Server服務(wù)器名稱不同而造成無法訪問的錯誤,localhost是本地?cái)?shù)據(jù)庫的通用名稱。6.2.2 數(shù)據(jù)適配器配置從工具箱的【數(shù)據(jù)】頁中拖動一個SglDataAdapter控件
27、到窗體設(shè)計(jì)器中,如圖8.30所示。此時(shí)【數(shù)據(jù)適配器配置向?qū)А繉⒆詣訂?,如圖所示。單擊下一步,繼續(xù),選擇【使用SQL語句】,然后單擊【下一步】按鈕,進(jìn)入生成SQL語句的部分,這是啟動【數(shù)據(jù)適配器配置向?qū)А亢蟮牡冢?)步,如圖所示。可以在其中的編輯框中輸入查詢SQL語句(如select*from讀者類型”)。頁面中的【高級選項(xiàng)】按鈕控制一些與更新數(shù)據(jù)庫有關(guān)的選項(xiàng),在只需要從數(shù)據(jù)庫中查詢數(shù)據(jù)而不需要更新刪除插入等操作時(shí),可以取消選中【生成Insert,Update和Delete語句】復(fù)選框,如圖。【查詢生成器】按鈕可以通過圖形化的界面生成SQL語句,非常的方便。再單擊【下一步】按鈕,將完成數(shù)據(jù)適配
28、器的設(shè)置,完成后,在窗體設(shè)計(jì)器的下方將出現(xiàn)一個托盤,其上有放置的SglDataAdapter和自動生成的SglConnection對象,如圖所示。在SglDataAdapterl對象上右擊,在彈出的快捷菜單中選擇【配置數(shù)據(jù)適配器】命令可以重新配置數(shù)據(jù)適配器。右擊SglDataAdapterl對象,在彈出的快捷菜單中選擇【生成數(shù)據(jù)集】命令,彈出【生成數(shù)據(jù)集】對話框,如圖所示。生成數(shù)據(jù)集后,在窗體設(shè)計(jì)器下方的托盤中將自動出現(xiàn)一個數(shù)據(jù)集對象,如圖所示。至此,完成了一個最基本ADO.NET數(shù)據(jù)組件的創(chuàng)建和設(shè)置6.3 創(chuàng)建系統(tǒng)主窗體利用系統(tǒng)默認(rèn)生成的窗體作為主窗體,添加相應(yīng)的控件,定義控件屬性。編寫主窗
29、體事件處理代碼:using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;namespace 圖書館管理系統(tǒng)public class mainFrm : System.Windows.Forms.Form/*省略系統(tǒng)自動生成的代碼*/static void Main() /整個程序啟動時(shí)先顯示登錄框,登錄成功再顯示主界面LoginFrm login = new LoginFrm();logi
30、n.ShowDialog();if (LoginFrm.blCanLogin=true)Application.Run(new mainFrm();/-查詢MDI子窗體是否存在-private bool checkChildFrmExist(string childFrmName)foreach(Form childFrm in this.MdiChildren)if(childFrm.Name = childFrmName) /用子窗體的Name進(jìn)行判斷,如果存在則將他激活if(childFrm.WindowState = FormWindowState.Minimized)childFrm
31、.WindowState = FormWindowState.Normal;childFrm.Activate();return true;return false;/-顯示讀者類別設(shè)置窗體-private void menuItem2_Click(object sender, System.EventArgs e)/通過窗體名稱查詢該窗體是否已經(jīng)存在,如存在則顯示,否則就新創(chuàng)建一個if (this.checkChildFrmExist(ReaderClassify) = true)return;ReaderClassify newFrm=new ReaderClassify();newFrm
32、.MdiParent = this;newFrm.Show();/-顯示讀者信息設(shè)置窗體-private void menuItem3_Click(object sender, System.EventArgs e)/通過窗體名稱查詢該窗體是否已經(jīng)存在,如存在則顯示,否則就新創(chuàng)建一個if (this.checkChildFrmExist(ReaderInfo) = true)return;ReaderInfo newFrm=new ReaderInfo();newFrm.MdiParent = this;newFrm.Show();/-顯示圖書類型設(shè)置窗體-private void menuI
33、tem5_Click(object sender, System.EventArgs e)/通過窗體名稱查詢該窗體是否已經(jīng)存在,如存在則顯示,否則就新創(chuàng)建一個if (this.checkChildFrmExist(BookClassify) = true)return;BookClassify newFrm=new BookClassify();newFrm.MdiParent = this;newFrm.Show();/-顯示圖書檔案管理窗體-private void menuItem6_Click(object sender, System.EventArgs e)/通過窗體名稱查詢該窗體
34、是否已經(jīng)存在,如存在則顯示,否則就新創(chuàng)建一個if (this.checkChildFrmExist(BookInfo) = true)return;BookInfo newFrm=new BookInfo();newFrm.MdiParent = this;newFrm.Show();/-顯示圖書征訂窗體-private void menuItem8_Click(object sender, System.EventArgs e)/通過窗體名稱查詢該窗體是否已經(jīng)存在,如存在則顯示,否則就新創(chuàng)建一個if (this.checkChildFrmExist(BookSubscribe) = true
35、)return;BookSubscribe newFrm=new BookSubscribe();newFrm.MdiParent = this;newFrm.Show();/-顯示圖書借閱窗體-private void menuItem9_Click(object sender, System.EventArgs e)/通過窗體名稱查詢該窗體是否已經(jīng)存在,如存在則顯示,否則就新創(chuàng)建一個if (this.checkChildFrmExist(BookBorrow) = true)return;BookBorrow newFrm=new BookBorrow();newFrm.MdiParent
36、 = this;newFrm.Show();/-顯示圖書歸還窗體-private void menuItem10_Click(object sender, System.EventArgs e)/通過窗體名稱查詢該窗體是否已經(jīng)存在,如存在則顯示,否則就新創(chuàng)建一個if (this.checkChildFrmExist(BookReturn) = true)return;BookReturn newFrm=new BookReturn();newFrm.MdiParent = this;newFrm.Show();/-顯示逾期圖書窗體-private void menuItem11_Click(o
37、bject sender, System.EventArgs e)/通過窗體名稱查詢該窗體是否已經(jīng)存在,如存在則顯示,否則就新創(chuàng)建一個if (this.checkChildFrmExist(OverdueBook) = true)return;OverdueBook newFrm=new OverdueBook();newFrm.MdiParent = this;newFrm.Show();/-顯示圖書罰款窗體-private void menuItem12_Click(object sender, System.EventArgs e)/通過窗體名稱查詢該窗體是否已經(jīng)存在,如存在則顯示,否則
38、就新創(chuàng)建一個if (this.checkChildFrmExist(BookPenalty) = true)return;BookPenalty newFrm=new BookPenalty();newFrm.MdiParent = this;newFrm.Show();private void menuItem13_Click(object sender, System.EventArgs e)this.Close(); 6.4 創(chuàng)建系統(tǒng)子窗體,窗體截圖將在運(yùn)行與調(diào)試階段提供,這里只給出窗體事件處理代碼(1)登錄窗體:using System;using System.Drawing;usi
39、ng System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;namespace 圖書館管理系統(tǒng)/*省略系統(tǒng)自動生成代碼*/public class LoginFrm : System.Windows.Forms.Formpublic static bool blCanLogin = false; /記錄能否檢驗(yàn)是否通過public static string strUser = ; /記錄用戶名public static string strDepartment =
40、 ;/記錄通過者所屬部門private DataSet ds = new DataSet();private DataTable myTable;private DataRow myRow;private string sendStrSQL = SELECT * from 用戶清單;/*省略系統(tǒng)自動生成代碼*/public LoginFrm()InitializeComponent();/初始化窗體時(shí),從數(shù)據(jù)庫中的“用戶清單”表中檢索數(shù)據(jù)并保存在mytable中LinkDataBase link = new LinkDataBase();string sendTableName = 用戶清單;this.ds = link.SelectDataBase(sendStrSQL,sendTableName);this.myTable = ds.Tables0;/*省略系統(tǒng)自動生成代碼*/-根據(jù)輸入的用戶名和密碼進(jìn)行登錄校驗(yàn)-private void btn_Login
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報(bào)參考:教育家精神引領(lǐng)高校思政課教師職業(yè)素養(yǎng)評價(jià)體系建構(gòu)研究
- 二零二五版鋁合金建筑模板采購協(xié)議書4篇
- 商場內(nèi)品牌專賣店裝修許可協(xié)議(2025年)2篇
- 2025年度苗木種植與林業(yè)產(chǎn)業(yè)發(fā)展合作合同4篇
- 二手房合作投資合同模板2024版B版
- 二零二五年度人工智能教育培訓(xùn)合同補(bǔ)充協(xié)議6篇
- 二零二五年度旅行社與航空公司合作協(xié)議書3篇
- 2025年度品牌跨界合作與品牌授權(quán)合作協(xié)議4篇
- 二零二五版?zhèn)€人貸款居間中介服務(wù)協(xié)議書6篇
- 2025年度個人房產(chǎn)抵押借款合同規(guī)范文本8篇
- 【寒假預(yù)習(xí)】專題04 閱讀理解 20篇 集訓(xùn)-2025年人教版(PEP)六年級英語下冊寒假提前學(xué)(含答案)
- 2024年智能監(jiān)獄安防監(jiān)控工程合同3篇
- 2024年度窯爐施工協(xié)議詳例細(xì)則版B版
- 幼兒園籃球課培訓(xùn)
- 【企業(yè)盈利能力探析的國內(nèi)外文獻(xiàn)綜述2400字】
- 統(tǒng)編版(2024新版)七年級《道德與法治》上冊第一單元《少年有夢》單元測試卷(含答案)
- 100道20以內(nèi)的口算題共20份
- 高三完形填空專項(xiàng)訓(xùn)練單選(部分答案)
- 護(hù)理查房高鉀血癥
- 項(xiàng)目監(jiān)理策劃方案匯報(bào)
- 《職業(yè)培訓(xùn)師的培訓(xùn)》課件
評論
0/150
提交評論