freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

圖書管理系統(tǒng)開發(fā)畢業(yè)論文-資料下載頁

2025-02-26 06:51本頁面

【導(dǎo)讀】采用SQLServer2021數(shù)據(jù)庫作為后臺數(shù)據(jù)庫、VisualC#編程語言作為前臺開發(fā)。通過對圖書管理的調(diào)查論證,圖書管理系統(tǒng)可以分為用戶信息管理、客戶信息管理、圖書信息管理、出版社信息管理、客戶租還書管理、綜合查詢功能。借閱者、圖書管理員兩方面的需要,達(dá)到了設(shè)計要求。

  

【正文】 庫 BookManagement。添加數(shù)據(jù)適配組件 sqlDateAdapter1并使用數(shù)據(jù)適配器配置向?qū)ζ溥M(jìn)行配置:首先選擇剛創(chuàng)建好的連接并選擇 BorrowBook數(shù)據(jù)表的所有列,然后用數(shù)據(jù)適配器 sqlDataAdapter1 生 成 數(shù) 據(jù) 集 DataSetBorrowReturn 的 實 例objDataSetBorrowReyurn,雙擊打開文件 數(shù)據(jù)集。 下面就進(jìn)行 代碼分析。當(dāng)加載 Form1時,為 Form1_Load()添加如程序清單所示的代碼。 private void Form1_Load(object sender, e) { try { ()。 (,BorrowBook)。 =數(shù)據(jù)集初始成功 。 } catch( ex) { (ex)。 =數(shù)據(jù)集初始失敗 。 } ()。 33 } 在 上 述 代 碼 中 , 首 先 打 開 數(shù) 據(jù) 連 接 sqlConnection1 , 并 填 充 數(shù) 據(jù) 集objDataSetBorrowReturn,同時在文本框 textInformation中給出相應(yīng)的數(shù)據(jù)集初始信息。代 碼中的 ErrorHandle()函數(shù)和數(shù)據(jù)維護(hù)的函數(shù)相同,這里不再介紹。 在客戶編號的文本框中輸入客戶編號就相當(dāng)于在圖書出租時管理員把客戶的證件編號掃描進(jìn)電腦。然后單擊“租借記錄”按鈕就可在下面的 dataGrid1中顯示出客戶的所有租借記錄。單擊“租借記錄”按鈕 btnLoad時的代碼請參考程序清單。 private void btnLoad_Click(object sender, e) { string source=select ReaderID,BookID,BorrowDate,ReturnDate from BorrowBook where ReaderID=+。 =。 =source。 =。 ()。 (,BorrowBook)。 =。 =BorrowBook。 ()。 =查詢客戶 ++記錄+成功 。 } 在上述代碼中利用 SQL語句實現(xiàn)對數(shù)據(jù)庫中客戶號碼 ReaderID為文本框 textReaderId文本時的檢索功能,然后把此 SQL語句賦值給 sqlDataAdapter1的 SelectCommand,并設(shè)置它的各種屬性。然后利用 sqlDataAdapter1填充數(shù)據(jù)集 objDataSetBorrowReturn,并通過設(shè)置 dataGrid1的 DataSource屬性和 DataMember來把剛剛檢索到的數(shù)據(jù)顯示到 dataGrid1中。 當(dāng)在 textReaderID和 textBookID中分別輸入客戶號碼和圖書號碼時,就可以單擊“租借圖書”按鈕來實現(xiàn)此客戶對此圖書的租借功能。具體代碼參見程序清單。 private void btnBorrow_Click(object sender, e) { 34 DataRow row=[BorrowBook].NewRow()。 row[ReaderID]=。 row[BookID]=。 row[BorrowDate]=。 row[ReturnDate]=(1)。 [BorrowBook].(row)。 if(BorrowBook()amp。amp。BorrowReader()) { =+ 租借圖書++成功 。 ()。 ()。 } } } 在這段代碼中生成數(shù)據(jù)集 objDataSetBorrowReturu中的數(shù)據(jù)表 BorrowBook的一個數(shù)據(jù)行 row,并為此行的各個字段賦值。其中, ,而AddMonths( 1)實現(xiàn)一個月以后的今天。 BorrowBook函數(shù)和 BorrowReader函數(shù)分別用來在客戶租借圖書時同時減少相應(yīng)圖書的庫存量和增加該客戶的以租借書數(shù)目,下面會詳細(xì)介紹。因為 UpdateDateSet函數(shù)與數(shù)據(jù)維護(hù)功能模塊的 UpdateDateSet函數(shù)類似,所以不再贅述。通過 Refresh方法可以把 dataGrid1更新。最后在 textInformation中顯示出提示信息。 下面分別詳細(xì)講解 BorrowBook函數(shù)和 BorrowReader函數(shù)。首先列出 BorrowBook函數(shù)的代碼,如程序清單 private bool BorrowBook(string BookID) { if(BorrowBookNumber()0) { SqlCommand borrowbook=new SqlCommand()。 =。 =。 35 =。 SqlParameter parinput=(@BookID,)。 =。 =BookID。 try { ()。 ()。 ()。 return true。 } catch( e) { (e)。 ()。 return false。 } } else return false。 } 這段代碼展示了在 C數(shù)據(jù)庫開發(fā)中如何利用存儲過程來進(jìn)行編程。首先,在代碼中生成了新的 SqlCommand對象 borrowbook,并設(shè)置它的 Connection屬性。設(shè)置 CommandType屬性為 StoreProcedure(存儲過程),同時將 CommandText屬性設(shè)置為存儲過程的名稱,這個存儲過程前面已經(jīng)介紹過。 雖然可以通過以 SQL語句的形式傳遞參數(shù)自變量之前的存儲過程名稱來調(diào)用存儲過程,單如果使用 Command對象的 Parameters集合,則可以顯式地定義存儲過程參數(shù)并訪問輸出參數(shù)和返回值。 Parameter對象可以使用 Parameter構(gòu)造函數(shù)來創(chuàng)建,或通過調(diào)用 Command的 Parameters集合的 Add方法來創(chuàng)建,上述代碼就是采用這種方式來添加@BookID參數(shù)。 Parameter對象用作輸入。設(shè)置ParameterDirection 屬 性 來 指 定 參 數(shù) 類 型 是 Input,InputOutput,Output 還是 36 ReturuValue。在上述代碼中為 Input。 上述代碼中的存儲過程是一個 Update的 SQL命令,所以就可以調(diào)用 ExecuteNonQuery來執(zhí)行此存儲過程。 BorrowBook函數(shù)中的 BorrowBookNumber用來檢驗客戶所租圖書目前的庫存量,如果等于 0則租借失敗。具體代碼參見程序清單 private int BorrowBookNumber(string BookID) { SqlCommand borrowbook=new SqlCommand()。 =。 =。 =。 SqlParameter parinput=(@BookID,)。 =。 =BookID。 SqlParameter paroutput=(@BookNumber,)。 =。 try { ()。 ()。 ()。 return ()。 } catch( e) { (e)。 ()。 return 0。 } 37 } BorrowBookNumber()函數(shù)的實現(xiàn)手法和 BorrowBook(string)基本相同,只是在存儲過程中多了一個 Output型的變量,用來把返回記錄條數(shù)返回。 同樣道理, BorrowReader函數(shù)代碼參見程序清單 private bool BorrowReader(string ReaderID) { if(ReaderBorrowedNumber(ReaderID)8) { SqlCommand borrowbook=new SqlCommand()。 =。 =。 =。 SqlParameter parinput=(@ReaderID,)。 =。 =ReaderID。 try { ()。 ()。 ()。 return true。 } catch( e) { (e)。 ()。 return false。 } } else return false。 } BorrowReader函數(shù)在租書時同時增加客戶所租借的數(shù)目,和 BorrowBook的實現(xiàn)方式 38 完全相同,亦不再詳細(xì)介紹。在 BorrowReader函數(shù)中用到了 ReaderBorrow Number函數(shù)來返回客戶的目前租借圖書數(shù)目,如果大于 7本則不允許再租借。此函數(shù)的代碼實現(xiàn)參見程序清單 private int ReaderBorrowedNumber(string ReaderID) { SqlCommand borrowbook=new SqlCommand()。 =。 =。 =。 SqlParameter parinput=(@ReaderID,)。 =。 =ReaderID。 SqlParameter paroutput=(@BorrowedNumber,)。 =。 try { ()。 ()。 ()。 return ()。 } catch( e) { (e)。 ()。 return 8。 } } ReaderBorrowNumber()函數(shù)事先手法和 BorrowBookNumber函數(shù)如出一轍,這里不再展開。 還書的情況和租書的情況剛剛相反,是把客戶表中的目前租借圖書數(shù)目減少而圖書表中的庫存量增加。實現(xiàn)的手法也基本相同,具體代碼參見程序清單 private bool ReturnBook(string BookID) 39 { SqlCommand returnbook=new SqlCommand()。 =。 =。 =。 SqlParameter parinput=(@BookID,)。 =。 =BookID。 try { ()。 ()。 ()。 return true。 } catch( e) { (e)。 ()。 return false。 } } 內(nèi)部資料 請勿外傳 9JWKf wvGt YM*Jgamp。 6a*CZ7H$dq8Kqqf HVZFedswSyXTyamp。 QA9wkxFyeQ^! djsXuyUP2kNXpRWXm Aamp。 UE9aQ@Gn8xp$Ramp。849Gx^Gj qv^$UE9wEwZQc@UE%amp。 qYp@Eh5pDx2zVkumamp。 gTXRm 6X4NGpP$vSTTamp。ksv*3t nGK8!z89Am YWpazadNuKNamp。MuWFA5uxY7JnD6YWRr Wwc^vR9CpbK!zn%Mz849Gx^Gj qv^$UE9wEwZQc@UE% amp。 qYp@Eh5pDx2zVkum amp。gTXRm 6X4NGpP$vSTTamp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。MuWFA5ux^Gj qv^$UE9wEwZQc@UE% amp。 qYp@Eh5pDx2zVkum amp。gTXRm 6X4NGpP$vSTTamp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。MuWFA5uxY7JnD6YWRr Wwc^vR9CpbK! zn%Mz849Gx^Gj qv^$UE9wEwZQc@UE%amp。 qYp@Eh5pDx2zVkumamp。 gTXRm 6X4NGpP$vSTTamp。 ksv*3tnGK8! z89Am UE9aQ@Gn8xp$Ramp。 849Gx^Gj qv^$UE9wEwZQc@UE%amp。 qYp@Eh5pDx2zVkumamp。 gTXR
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1