中圖分類號:TP311 文獻標識碼:A文章編號:2096-4706(2025)12-0110-05
Design and Implementation of a Library Management System Based on ADO.NET and C#
AN Zihan, MIAO Shuiyu (Dalian University of Foreign Languages,Dalian , China)
Abstract:Withtherapiddevelopmentof nformationtechnology,inorder toimprove theeffciencyoflibrarymanagement andmet theneedsof modernmanagement,alibrarymanagementsystemisdesignedbyusingADO.NETtechnologyVisual Studio 202 software and SQL Server Management Studio 2012 database development software.The system realizes the functions ofogin,userregistration,bookviewingandbroingcurrentbooedbookretum,bookifomationmanageent, user information management,user borowing,and returning book information management and password modification.The application of the system can standardize library management work and has certain practical value.
Keywords: ADO.NET technology; C# programming language; SQL database; library management
0 引言
圖書館的館藏資源是重要的社會信息資源。在當前信息化快速發(fā)展的時代,圖書館的管理效率與服務(wù)質(zhì)量成為衡量其現(xiàn)代化水平的重要指標。傳統(tǒng)的基于人力的圖書管理模式已不能滿足人們?nèi)找嬖鲩L的借閱需求,建立信息化的圖書管理系統(tǒng)對于借閱者和管理者而言,都有著極其重要的價值[1]。本研究基于.NET平臺架構(gòu),利用.NET優(yōu)勢結(jié)合C#編程語言開發(fā)圖書管理系統(tǒng),通過自動化記錄圖書的借閱、歸還等操作,減少人工干預(yù),提升圖書管理效率;實現(xiàn)圖書信息的快速檢索和統(tǒng)計,幫助管理員快速了解圖書使用情況;提供友好的用戶界面,方便讀者查詢圖書信息、借閱或歸還圖書等,優(yōu)化用戶體驗。
1系統(tǒng)相關(guān)技術(shù)介紹
1.1 ADO.NET技術(shù)
ADO.NET是微軟提供的工具,幫助開發(fā)人員在程序中通過SQL語句操縱數(shù)據(jù)[2],分為連接和斷開連接兩種工作模式。在連接模式中,應(yīng)用程序通過Connection對象與數(shù)據(jù)源保持連接,使用DataReader直接從數(shù)據(jù)源讀取數(shù)據(jù);在斷開連接模式中使用DataSet和DataAdapter。ADO.NET技術(shù)的核心對象包括:Connection對象,用于建立并管理與數(shù)據(jù)源的連接;Command對象,用于執(zhí)行對數(shù)據(jù)源的SQL命令并返回結(jié)果,可進行查詢、修改數(shù)據(jù)庫結(jié)構(gòu)等操作;DataReader對象,用于從數(shù)據(jù)源以只讀、順序的方式快速讀取數(shù)據(jù);DataAdapter對象,能夠?qū)?shù)據(jù)源的數(shù)據(jù)填充到內(nèi)存中,也可將內(nèi)存中的數(shù)據(jù)更新回數(shù)據(jù)源;DataSet對象可將數(shù)據(jù)集視為數(shù)據(jù)容器,DataTable等效于數(shù)據(jù)庫中的表[3]。
1.2 Visual Studio 2022
VisualStudio2022是一款功能強大的集成開發(fā)環(huán)境,適用于各類應(yīng)用程序和系統(tǒng)軟件的開發(fā)[4。它支持多種編程語言,如C#、 C++ 、Python等,可用于開發(fā)桌面應(yīng)用、Web應(yīng)用等各類應(yīng)用程序,支持.NET、Unity等多個平臺和框架。
1.3SQL Server Management Studio 2012
SQLServerManagementStudio 2012是一種關(guān)系型數(shù)據(jù)庫平臺,可被ADO.NET和VisualStudio開發(fā)的自定義應(yīng)用程序訪問、交互[5]。該軟件具有如下特點:
1)用戶體驗友好,界面設(shè)計充分考慮了用戶操作的便捷性。2)兼容性與擴展性卓越,支持在多平臺上運行。3)提供了一系列強大且豐富的接口工具。4)管理效率顯著提升,集成化的操作界面和智能化的功能設(shè)計,能簡化原本復(fù)雜煩瑣的數(shù)據(jù)庫管理任務(wù)。
1.4 開發(fā)語言
本系統(tǒng)采用的開發(fā)語言為C#,它是面向?qū)ο蟮恼Z言,支持封裝、繼承和多態(tài)。使用C#在程序設(shè)計過程中,能夠針對用戶需求直接編寫程序,快速高效地開發(fā)各類管理系統(tǒng),縮短系統(tǒng)開發(fā)周期[]。
2 系統(tǒng)設(shè)計
2.1 功能設(shè)計
圖書管理系統(tǒng)設(shè)有兩種用戶權(quán)限(用戶、管理員)。用戶若無賬號,可進行注冊;若有賬號,即可登錄系統(tǒng),登錄后可實現(xiàn)修改密碼、圖書查看與借閱、當前借出圖書歸還等功能。管理員登錄系統(tǒng)后,可實現(xiàn)修改密碼、圖書信息管理、用戶信息管理和用戶借還書信息管理等功能。系統(tǒng)功能如圖1所示。
圖1系統(tǒng)功能圖
2.2 數(shù)據(jù)庫設(shè)計
設(shè)計數(shù)據(jù)庫是為用戶和各種應(yīng)用系統(tǒng)提供信息基礎(chǔ)設(shè)施和高效的運行環(huán)境,在保證系統(tǒng)運行穩(wěn)定性的同時,從整體層面提升系統(tǒng)的運行效果[7-8]。使用SQLServerManagementStudio2012數(shù)據(jù)庫開發(fā)軟件設(shè)計數(shù)據(jù)表,具體描述如下:
1)用戶表。由用戶名和密碼組成,其中用戶名不可重復(fù)。
2)管理員表。由管理員用戶名和密碼組成。
3)圖書表。由圖書號、圖書名、作者、出版社和數(shù)量組成,其中圖書號是圖書的唯一標識。
4)借書表。由借書編號、用戶名、圖書號、借還書狀態(tài)、借書時間和還書時間組成,其中每條借書記錄的借書編號唯一。用戶名用于關(guān)聯(lián)借閱圖書的具體用戶,圖書號用于關(guān)聯(lián)該用戶借閱的具體圖書;將借書表中的用戶名和圖書號設(shè)計為外鍵,使主表和子表形成關(guān)聯(lián)關(guān)系(即參照完整性約束),以此保證數(shù)據(jù)庫中數(shù)據(jù)的參照完整性和一致性[]。
5)用戶信息表。由用戶名、姓名、性別、年齡和手機號碼組成,該表的設(shè)計主要用于實現(xiàn)用戶信息管理功能,其中用戶名需與用戶表中的用戶名保持一致,且不可重復(fù)。
數(shù)據(jù)庫主要表設(shè)計如表1所示。
表1圖書管理系統(tǒng)數(shù)據(jù)庫主要表設(shè)計
3 系統(tǒng)功能實現(xiàn)
本圖書管理系統(tǒng)是在.NET平臺下,使用C#編程語言實現(xiàn)的。以下為本系統(tǒng)的功能介紹。
3.1登錄和用戶注冊功能
選中用戶或管理員并點擊登錄時,系統(tǒng)會驗證用戶或管理員提交的用戶名和密碼是否存在于數(shù)據(jù)庫中。若輸入的用戶名或密碼為空,系統(tǒng)將給出“不能為空”的提示。用戶若無賬號,可點擊用戶注冊。登錄功能主要代碼如下:
實現(xiàn)用戶注冊功能時,輸入信息并選擇性別后,點擊注冊。若文本框輸入為空,系統(tǒng)將給出“不能為空”的提示。由于用戶名在數(shù)據(jù)庫中具有唯一性,若輸入的用戶名已存在,則給出相應(yīng)提示。一個手機號碼僅可注冊一次賬號,若輸入的手機號碼已被注冊,同樣給出提示。若輸入的用戶名唯一且手機號碼未被注冊,則在數(shù)據(jù)庫的用戶表中插入用戶名和密碼,在用戶信息表中插入用戶名、姓名、性別、年齡和手機號碼。注冊功能主要代碼:string sql= string.Format(\"insert into tb_user values (′{0}′′{1}′) ;insertinto tb_userMessage(u_id,u_name,sex,age,phone)values(′{2}′,′{3}′,′{4}′,′{5}′,′{6}′)′ ,this.txtUserId.Text,thistxtPassword.Text,this.txtUserId.Text,this.txtName.Text,this.rbnNan.Checked?\"男\(zhòng)":\"女 \",this.txtAge.Text,this.txtPhoneNum.Text)://注冊功能SQL語句
3.2 圖書查看和借閱功能
圖書查看和借閱功能面向用戶。點擊搜索顯示所有的圖書信息,包括圖書號、圖書名、作者、出版社和可借數(shù)量,也可以輸入圖書號或圖書名進行圖書的精準或模糊查詢。選中想借出的圖書后點擊借閱即可借出圖書,點擊取消即可取消選中行。借閱功能主要代碼:string sql= string.Format(\"insert into tb_borrow(userid,bookid,condition,borrow_time)values (′{0}′′{1}′,′{ 2}',getdate);\"+\"updatetb_booksetnumber Σ= number-1where bnum =′{3} \"\",UserId,ISBN,\"未歸還\",ISBN);//借閱圖書的SQL語句
3.3 當前借出圖書和歸還功能
當前借出圖書歸還功能面向用戶。點擊查看可顯示當前用戶借出但未歸還的圖書信息,包括借書編號、借書時間、圖書號、圖書名、作者和出版社。選中需歸還的圖書后,點擊歸還即可完成操作,點擊取消則取消選中行。歸還功能主要代碼為:
string sqll Σ=Σ string.Format(\"updatetb_borrow set condition ?′ 已歸還'return_time $$ GETDATE( where useri d=:{0} 'and bookid=\"{1} 'and n0={2} \",UserId,ISBN,borrow_no);//更新借書表的 SQL語句
string sql2= string.Format(\"update tb_book set number=number +1 wherebnum 1=′{0} \",ISBN);//更新圖 書表的 SQL 語句
3.4圖書信息管理功能
圖書信息管理功能面向管理員。點擊搜索可顯示所有圖書信息,也可輸入圖書號或圖書名進行精準或模糊查詢。若需添加新圖書信息,點擊新增跳轉(zhuǎn)至增加圖書信息界面,添加的圖書信息不能為空,否則會出現(xiàn)提示信息。
刪除圖書信息時,選中待刪除的圖書后點擊刪除即可。但若選中的圖書有被讀者借閱且未歸還的情況,則會提示“該書尚有未歸還記錄,無法刪除!”。點擊取消則取消選中行。主要代碼:
string sqll Σ=Σ string.Format(\"selectcount(*) fromtb_borrowwherebookid =′{0}′ and condition 未歸還\",bookid);//查詢圖書被借閱的SQL語句,若圖書暫未歸還,則無法刪除該圖書信息
string sql2 Σ=Σ string.Format(\"deletefromtb_book where bnum 1=′{0} \"\",bookid) ;// 刪除圖書信息的SQL 語句
修改圖書信息時,雙擊想修改的圖書信息所在行,跳轉(zhuǎn)至修改圖書信息界面。但圖書號不可修改,圖書號在數(shù)據(jù)庫的圖書表中作為主鍵,需要遵守主鍵約束。主要代碼:
3.5用戶信息管理功能
用戶信息管理功能面向管理員。點擊查詢可顯示用戶信息表中的所有用戶信息,也可輸入精準用戶名進行查詢。修改用戶信息時,雙擊待修改的用戶信息所在行,跳轉(zhuǎn)至修改界面。由于需確保用戶表與用戶信息表中的用戶名一致,因此用戶名不可修改。用戶信息管理功能的界面設(shè)計如圖3所示。主要代碼:
string sql Σ=Σ \"selectu_id,u_name,sex,age,phone from tb_userMessage\";//查詢的SQL語句
if(this.txtUserId.Text.Trim != \"\") {sql += string. Format(\"whereu_id η=η′{0}′ \",this.txtUserId.Text. Trim);3/1 用戶名精確查詢的SQL語句
string sql Σ=Σ string.Format(\"update tb_userMessage setu_name 1 sex=\"{1} age=1{2} ',phone =′{3}′ where u_ic 1=′{4} '\",this.txtName.Text.Trim,this.rbnNan. Checked?'男':女',this.txtAge.Text. Trim ,this.txtPhone. Text.Trim(,this.txtUserId.Text. Trim);// 修改用戶信息 的 SQL 語句
圖書信息管理功能的界面設(shè)計如圖2所示。
圖2圖書信息管理界面
圖3用戶信息管理界面
圖4用戶借還書信息管理界面
3.6用戶借還書信息管理功能
用戶借還書信息管理功能面向管理員。
3.7修改密碼功能
修改密碼功能面向用戶和管理員。舊密碼、新密碼和確認密碼需全部輸入,若有輸入為空,則提示“輸入不能為空!”。輸入完畢后進行數(shù)據(jù)校驗,若新密碼與舊密碼相同,則提示“新密碼不可與舊密碼相同!”;若確認密碼與新密碼不一致,則提示“確認密碼必須與新密碼一致!”。主要代碼:string sql= string.Format(\"updatetb_usersetpassword= {0}′ whereid=′{1} \"\",this.txtFinalPw.Text.Trim(,UserId);//用戶修改密碼的SQL語句,管理員修改密碼的SQL語句同理。
3.8 系統(tǒng)功能測試
根據(jù)圖書管理系統(tǒng)設(shè)計,測試各模塊能否正常運行及模塊銜接的安全性[10]。測試表明,本圖書管理系統(tǒng)可正確展現(xiàn)各功能頁面,整體功能齊全,基本達到預(yù)期效果。
4結(jié)論
本研究設(shè)計并實現(xiàn)的圖書管理系統(tǒng),從用戶角度提供便捷的圖書服務(wù),從管理員角度提升管理效能。系統(tǒng)功能設(shè)計完備,在方便用戶操作的同時,也極大簡化了圖書管理員的工作。未來,隨著技術(shù)發(fā)展,該系統(tǒng)可進一步拓展功能,持續(xù)提升圖書管理服務(wù)水平,推動圖書館數(shù)字化建設(shè)邁向新高度。
參考文獻:
[1]林輝,楊小容.基于微信小程序的圖書管理系統(tǒng)[J]電子設(shè)計工程,2024,32(12):136-140.
[2]孫仁鵬.ADO.NET在多層模式下應(yīng)用的研究[J].計算機工程與設(shè)計,2010,31(16):3621-3624.
[3]徐寶林.基于ADO.NET的應(yīng)用程序訪問后臺數(shù)據(jù)的模塊劃分研究[J].計算機應(yīng)用與軟件,2011,28(7):212-215.
[4]王長云,管曉虎,時謙.基于VisualStudio的方向性電流保護仿真實驗設(shè)計[J].工業(yè)控制計算機,2024,37(12):127-129.
[5]張永才,祖健,于亞新,等.基于SQL服務(wù)器和C#編程技術(shù)的列車運行仿真平臺設(shè)計與應(yīng)用[J].機電工程技術(shù),2023,52(5):242-247.
[6]李進豪.基于C#的小型管理系統(tǒng)常用技術(shù)的研究與應(yīng)用[J].現(xiàn)代計算機,2023,29(22):50-55.
[7]任蕾蕾.計算機軟件開發(fā)中數(shù)據(jù)庫安全設(shè)計研究[J]網(wǎng)絡(luò)安全和信息化,2023(3):55-57.
[8]陳趙云.基于C語言的飛機作戰(zhàn)游戲系統(tǒng)設(shè)計與實現(xiàn)[J].現(xiàn)代信息科技,2024,8(17):111-114+119.
[9]李艷杰.MySQL數(shù)據(jù)庫中數(shù)據(jù)參照完整性和一致性的設(shè)計與實現(xiàn)[J].信息技術(shù)與信息化,2020(11):102-104.
[10]劉源昭,陳偉,曹俊杰,等.基于SSM架構(gòu)的圖書管理系統(tǒng)[J].山西電子技術(shù),2022(3):61-63+76.
作者簡介:安紫涵(2004一),女,漢族,遼寧沈陽人,本科在讀,研究方向:機器學(xué)習(xí)與數(shù)據(jù)挖掘;苗水昱(2004—),女,漢族,遼寧丹東人,本科在讀,研究方向:JavaWeb開發(fā)。