【正文】
= .Connection = End With Dim mBook_code As New SqlParameter(Book_code, , 50) 39。 + Book_author + 39。 + Book_pub + 39。 + Book_code + 39。, Book_pubdate smalldatetime=39。 RETURN /*檢索某圖書(shū)是哪位讀者借去的 */ ALTER PROCEDURE Book1IsBorrowByWho Book_code nvarchar(50) AS SELECT Au_id FROM borrow WHERE (book_code = Book_code) AND (Return_date IS NULL) RETURN /*檢索某圖書(shū)是否在館 */ /*檢索在館的圖書(shū) 只要圖書(shū) id不在 借閱記錄沒(méi)有歸還的記錄 里 就表示在館 */ /*不在館 則返回 0 在館 返回 1 */ ALTER PROCEDURE Book1IsInLib Book_code nvarchar(50) AS SELECT COUNT(*) as IsInLib FROM book WHERE Book_code = Book_code AND Book_code IN (SELECT book_code FROM Book WHERE Book_code NOT IN (SELECT FROM borrow WHERE Return_date IS NULL)) RETURN /* 用于獲取一位讀者的 當(dāng)前借閱書(shū)數(shù) , 總共借閱書(shū)數(shù) , 可借書(shū)數(shù) 最大借閱時(shí)間 輸入?yún)?shù) Au_id */ ALTER PROCEDURE Get1AuInfo Au_id nvarchar(50), /*1*/ BorrowNo int output, BorrowNoCurrent int output, MaxBorrowDays int output, MaxBorrowBooks int output AS begin transaction SELECT BorrowNo=COUNT(*) FROM borrow WHERE (Au_id = Au_id) SELECT BorrowNoCurrent=COUNT(*) FROM borrow WHERE (Au_id = Au_id) AND (Return_date IS NULL) SELECT MaxBorrowDays= , MaxBorrowBooks= FROM ausort INNER JOIN au ON = WHERE ( = Au_id) mit transaction RETURN /* 用于獲取一位讀者所有超期的借書(shū)列表 Au_id */ /*author:翟靖軒 */ ALTER PROCEDURE Select1AuMaxDateBookList Au_id nvarchar(50) /*1*/ AS SELECT AS 圖書(shū)條碼號(hào) , AS 圖書(shū)題名 , AS 借閱日期 , AS 應(yīng)還日期 FROM book INNER JOIN borrow ON = WHERE ( = Au_id) AND ( IS NULL) AND ( GETDATE()) ORDER BY DESC RETURN /*返回超期的所有讀者 */ /*author:翟靖軒 2020510*/ ALTER PROCEDURE SelectMaxDateAuList AS SELECT AS 借書(shū)證號(hào) , AS 讀者姓名 , AS 圖書(shū)條碼號(hào) , AS 圖書(shū)名稱(chēng) , AS 借書(shū)日期 , AS 應(yīng)歸還日期 FROM borrow INNER JOIN au ON = INNER JOIN book ON = WHERE ( IS NULL) AND (GETDATE() ) ORDER BY RETURN /*查詢(xún)一個(gè)讀者的所有借閱記錄 包括已經(jīng)借過(guò)的已經(jīng)歸還的書(shū)籍 作者 :翟靖軒 日期 :202052 */ ALTER PROCEDURE SelectAuAllBorrowList Au_id nvarchar(50) AS SELECT AS 條碼號(hào) , AS 圖書(shū)題名 , AS 借閱日期 , AS 歸還日期 , AS 應(yīng)歸還日期 , AS ISBN號(hào) , AS 出版社 , AS 圖書(shū)分類(lèi) , AS 圖書(shū)作者 FROM book LEFT OUTER JOIN borrow ON = WHERE ( = Au_id) ORDER BY , DESC RETURN /* 綜合圖書(shū)查詢(xún) */ 查詢(xún)所有在館圖書(shū) ALTER PROCEDURE searchBookInLib Book_code nvarchar(50)=39。 5 程序源代碼經(jīng)典部分選錄 由于篇幅所限制 ,只能附上一些比較有代表性的代碼。 如果用戶(hù)名和密碼均符合的話(huà),則返回一條記錄,此時(shí) Count(*)值為 1, 符合條件, 就成功的通過(guò)了驗(yàn)證。 直接使用數(shù)據(jù)命令的基本步驟是: (1) 新建一個(gè) SqlConnection 對(duì)象,設(shè)置其 ConnectionString 屬性。 CommandType 獲取或設(shè)置一個(gè)值,該值指示如何解釋 CommandText 屬性。 該例子體現(xiàn)了如何執(zhí)行 sql 語(yǔ)句。 。通過(guò)忽略 OLE DB 層(還包括其他措施),對(duì)該對(duì)象進(jìn)行優(yōu)化以便將其用于 SQL Server 或更高版本。 用 DataSet 訪問(wèn)常規(guī)數(shù)據(jù)源的基本步驟是,先建立一個(gè) DataAdapter 對(duì)象,如果只需只讀訪問(wèn)數(shù)據(jù),那么只要對(duì) DataAdapter指定一個(gè) SelectCommand即可。 DataReader 提供未緩沖的數(shù)據(jù)流,該數(shù)據(jù)流使過(guò)程邏輯可以有效地按順序處理從數(shù)據(jù)源中返回的結(jié)果。 有效地從數(shù)據(jù)操作中將數(shù)據(jù)訪問(wèn)分解為多個(gè)可以單獨(dú)使用或一前一后使用的不連續(xù)組件。 可使用 .NET Framework 開(kāi)發(fā)下列類(lèi)型的應(yīng) 用程序和服務(wù): ? 控制臺(tái)應(yīng)用程序。以運(yùn)行庫(kù)為目標(biāo)的代碼稱(chēng)為托管代碼,而不以運(yùn) 行庫(kù)為目標(biāo)的代碼稱(chēng)為非托管代碼。 ? 提供一個(gè)保證代碼(包括由未知的或不完全受信任的第三方創(chuàng)建的代碼)安全執(zhí)行的代碼執(zhí)行環(huán)境。 or 39。將在創(chuàng)建存儲(chǔ)過(guò)程時(shí)對(duì)其進(jìn)行分析和優(yōu)化,并可在首次執(zhí)行該過(guò)程后使用該過(guò)程的內(nèi)存中 版本。 SQL Server 中的存儲(chǔ)過(guò)程與其它編程語(yǔ)言中的過(guò)程類(lèi)似,原因是存儲(chǔ)過(guò)程可以: ? 接受輸入?yún)?shù)并以輸出參數(shù)的形式將多個(gè)值返回至調(diào)用過(guò)程或批處理。 (2) 數(shù)據(jù)庫(kù)并發(fā)控制:在圖書(shū)館管理信息系統(tǒng)中,同時(shí)可能有多個(gè)客戶(hù)端在進(jìn)行數(shù)據(jù)操作。 (1) 事務(wù)是一組操作序列 .但是從用戶(hù)的角度看來(lái),事務(wù)是一個(gè)不可分 割的操作序列。 這類(lèi)完整性在 SQLserver2020 中的實(shí)現(xiàn)就是對(duì)相關(guān)表建一個(gè) check 約束即可。 主關(guān)鍵字不一定由一個(gè)字段組成 ,可以是多個(gè)字段的組合。 選擇它的原因有: SQLserver2020 功能強(qiáng)大,能完整實(shí)現(xiàn)數(shù)據(jù)庫(kù)系統(tǒng)的所有功能。我所開(kāi)發(fā)的這個(gè)圖書(shū)館管理信息系統(tǒng)是這兩者的結(jié)合。 .NET Framework 是一種新的計(jì)算平臺(tái),它簡(jiǎn)化了在高度分布式 Inter 環(huán)境中的應(yīng)用程序開(kāi)發(fā)。 我個(gè)人經(jīng)過(guò)大量的研究、實(shí)踐。在我所編寫(xiě)的圖書(shū)館管理信息系統(tǒng)中,使用了 開(kāi)放式并發(fā) 控制 (參見(jiàn) 附錄中我翻譯的英文文章 ),即 只有當(dāng)實(shí)際更新數(shù)據(jù)時(shí),該行才對(duì)其他用戶(hù)不可用。這就避免了功能上的錯(cuò)誤,也避免了給操作人員帶來(lái)的不必要負(fù)擔(dān)。比如張某于 2 月 10 日在負(fù)責(zé)借書(shū)的 A號(hào)電腦上借了一本書(shū),可能 A的系統(tǒng)時(shí)間被誤設(shè)定為 2 月 5 日。(可以適當(dāng)?shù)母囊恍┳x者個(gè)人的資料,如 等,此外在這里還可以查到讀者當(dāng)前的 、所有的借閱記錄等。代碼使用 編寫(xiě),利用 的優(yōu)點(diǎn),可 以自動(dòng)適應(yīng)多種客戶(hù) 瀏覽器。(實(shí)現(xiàn)圖書(shū)、讀者的添加,刪除,編輯。 系統(tǒng)提供的功能 : 針對(duì)圖書(shū)館管理員設(shè)計(jì)的部分 : 管理部分是一個(gè)基于 WinForms 的 windows 窗體 應(yīng)用程序,主要為圖書(shū)館管理人員 提供 服務(wù)。 圖書(shū)館管理信息系統(tǒng)的每一行代碼都是精雕細(xì)琢出來(lái)的,從里面 體現(xiàn)出 .NET 的強(qiáng)大性 以及優(yōu)越性 。而 .NET 包含的統(tǒng)一的類(lèi)庫(kù),統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)使得各類(lèi)編程模型更統(tǒng)一。 筆者經(jīng)過(guò)調(diào)查一些圖書(shū)館的現(xiàn)狀,發(fā)現(xiàn)各圖書(shū)館使用的管理系統(tǒng)基本都是幾年前的產(chǎn)品,大多使用 VB+ADO 方式, web 平臺(tái) 也主要使用 asp 或 php 開(kāi)發(fā)。 關(guān)鍵詞 : 數(shù)據(jù)庫(kù); .NET Framework; ;存儲(chǔ)過(guò)程 ; SQL Server .NET Framework 數(shù)據(jù)提供程序 ABSTRACT The Management Information System of Library using .NET This paper expatiate the Management Information System of Library using .NET, its background and the significance it has when application. Then, it presents the function of the Management Information System of Library and also discuss some technologies using when develop this system. Especially, it discuss the design technology of database, Stored Procedure, and control SQL Server 2020 using SQL Server .NET Framework Data Provider . In the end, it details the setup introduction and the user?s guide for the Management Information System of Library and also some classic code. The writer used a lot of time to design the program which is the keystone of all the works. The writer realized the importance of Stored Procedure for better performance and improving the security and also the advantage of .NET when programming. Moreover, the writer also investigates the applications of relational algebra in database science when programming. Keywords: Database。圖書(shū)館管理信息系統(tǒng) 摘 要 本文首先 闡述 了基于 .NET Framework 平臺(tái) 的圖書(shū)館管理信息 系統(tǒng)的開(kāi)發(fā)背景以及其實(shí)踐意義 ,其次 說(shuō)明 了圖書(shū)館管理信息系統(tǒng)的功能 以及相比同類(lèi)軟件的創(chuàng)新之處 。 NET Framework。開(kāi)發(fā)技術(shù)比較陳舊,功能上也有一些不足。 筆者個(gè)人對(duì) .NET 技術(shù)非常感興趣,在這方面也做過(guò)大量的研究。筆者在編程過(guò)程中查閱了大量的書(shū)籍, 參考了大量 MSDN 以及各大網(wǎng)站的技術(shù)文章,全部代碼 約有 一 萬(wàn)兩千行 左右 。 截圖如下: 管理部分提供以下功能: 1. 用戶(hù)功能。) 4. 綜合查詢(xún)統(tǒng)計(jì)。 截圖如下: 讀者只需要有一臺(tái)聯(lián)網(wǎng)的計(jì)算機(jī)和一個(gè)常用 WEB 瀏覽器。) 4. 信息服務(wù)。如果張某的最大借書(shū)時(shí)間為一個(gè)月,則他應(yīng)該還書(shū)的時(shí)間就被誤設(shè)定為 3月 5日。 3)用 的開(kāi)放式并發(fā)進(jìn)行并發(fā)控制 在圖書(shū)館系統(tǒng)的使用過(guò)程中,可能同時(shí)有多臺(tái)客戶(hù)機(jī)在操作同一個(gè)數(shù)據(jù)行。更新將在數(shù)據(jù)庫(kù)中檢查該行并確定是否進(jìn)行了任何更改。認(rèn)為在 MIS 開(kāi)發(fā)中,首先數(shù)據(jù)庫(kù)技術(shù)是 MIS開(kāi)發(fā)中的重要技術(shù)。 它 提供一個(gè)一致的面向?qū)ο蟮木幊汰h(huán)境 、 提供一個(gè)將軟件部署和版本控制沖