數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第1頁(yè)
數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第2頁(yè)
數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第3頁(yè)
數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第4頁(yè)
數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、學(xué)號(hào): 0906410230 數(shù)據(jù)庫(kù) 課程設(shè)計(jì)報(bào)告2011 年 秋 季學(xué)期學(xué) 院: 信息與控制工程學(xué)院 專業(yè)班級(jí): 計(jì)算機(jī)09-2 班 姓 名: 常樂(lè)杰 設(shè)計(jì)日期: 2011 年 12 月 26 日12 月 30 日 課程設(shè)計(jì)成績(jī): 評(píng) 閱 教 師: 評(píng) 閱 日 期: 1目錄目錄目錄目錄 .11.問(wèn)題描述問(wèn)題描述.21.1 背景.21.2 數(shù)據(jù)需求.21.3 事務(wù)需求.22.解決方案解決方案.22.1 E-R 模型設(shè)計(jì).22.2 設(shè)計(jì)數(shù)據(jù)庫(kù) .42.2.1創(chuàng)建數(shù)據(jù)庫(kù).42.2.2創(chuàng)建數(shù)據(jù)表.42.2.3連接數(shù)據(jù)庫(kù).42.3 主窗體設(shè)計(jì).52.3.1設(shè)計(jì)登錄界面.52.3.2添加數(shù)據(jù)組件.52.

2、3.3生成數(shù)據(jù)集.52.3.4設(shè)計(jì)代碼.62.4 信息.62.4.1設(shè)計(jì)顯示界面.62.4.2添加數(shù)據(jù)組件.62.4.3功能實(shí)現(xiàn).72.5 其他功能的實(shí)現(xiàn).72.5.1設(shè)計(jì)修改密碼功能.72.5.2退出功能的實(shí)現(xiàn).72.5.3注冊(cè)功能的實(shí)現(xiàn).73.系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn).73.1 開發(fā)環(huán)境.73.2 系統(tǒng)流程圖.73.3 程序調(diào)試情況.83.4 功能顯示 .83.5 結(jié)論 .114.結(jié)束語(yǔ)結(jié)束語(yǔ).11附錄:源代碼清單附錄:源代碼清單.12附 1.1 主窗體設(shè)計(jì)代碼如下:.12附 1.2 顯示課程名稱設(shè)計(jì)代碼如下: .13附 1.3 用戶注冊(cè)窗體設(shè)計(jì)代碼.16附 1.4 修改密碼窗體設(shè)計(jì)代碼.18附

3、1.5 用戶登錄設(shè)計(jì)代碼如下: .2021.問(wèn)題描述問(wèn)題描述1.1 背景本系統(tǒng)利用 VB.NET 處理數(shù)據(jù)庫(kù)的功能,實(shí)現(xiàn)對(duì)學(xué)生課程的管理。主要功能為管理學(xué)生信息、課程信息。本系統(tǒng)的結(jié)構(gòu)分為注冊(cè)模塊、登錄模塊、用戶信息修改模塊、課程信息管理模塊。1.2 數(shù)據(jù)需求根據(jù)系統(tǒng)的需求,首先將要記錄的信息分類,要記錄的信息如下。(1)用戶信息:包括用戶 ID、用戶名、密碼、用戶角色等。(2)課程信息:包括課程號(hào)、課程姓名、先行課等。根據(jù)這些需要,本系統(tǒng)需要“用戶信息”表, “課程信息”表。1.3 事務(wù)需求(1)在登錄模塊部分,要求如下??梢暂斎胗脩粜畔⑦M(jìn)入系統(tǒng)??梢栽黾有碌挠脩???梢詫?duì)指定用戶進(jìn)行注銷操作

4、。(2)在用戶信息修改模塊部分,要求如下。必須事先通過(guò)用戶名和密碼進(jìn)入系統(tǒng)??梢詫?duì)用戶信息進(jìn)行修改操作。(3)在課程信息管理模塊部分,要求如下??梢詾g覽課程信息。可以對(duì)課程信息進(jìn)行維護(hù),包括添加、修改及刪除等操作。2.解決方案解決方案2.1 E-R 模型設(shè)計(jì)該系統(tǒng)的 E-R 模型如圖 1 所示。(1)用戶實(shí)體屬性圖3用戶用戶角色用戶 ID用戶名密碼圖 2-1 用戶信息圖(2)課程實(shí)體屬性圖課程先行課課程號(hào)課程名圖 2-3 課程基本信息圖(4)合并 E-R 圖學(xué)生課程學(xué)nm圖 1 簡(jiǎn)單學(xué)生課程管理系統(tǒng) E-R 模型42.2 設(shè)計(jì)數(shù)據(jù)庫(kù)2.2.1 創(chuàng)建數(shù)據(jù)庫(kù)(1)在服務(wù)器資源管理器中的任一節(jié)點(diǎn)右擊

5、。(2)執(zhí)行快捷菜單中的“新建數(shù)據(jù)庫(kù)”命令,并在打開的“創(chuàng)建數(shù)據(jù)庫(kù)”對(duì)話框中輸入數(shù)據(jù)庫(kù)名 0906410230,選中“使用 WindowsNT 集成安全性”單選按鈕。(3)單擊“確定”按鈕,則新建的數(shù)據(jù)庫(kù)就會(huì)出現(xiàn)在服務(wù)器上。2.2.2 創(chuàng)建數(shù)據(jù)表創(chuàng)建數(shù)據(jù)庫(kù)后,為 0906410230 數(shù)據(jù)庫(kù)添加數(shù)據(jù)表,步驟如下。(1)在服務(wù)器資源管理器中右擊數(shù)據(jù)庫(kù) 0906410230 下的“表”文件夾。在彈出的快捷菜單中執(zhí)行“新建表”命令,出現(xiàn)表設(shè)計(jì)器。(2)添加表的字段和其他詳細(xì)資料。各表數(shù)據(jù)結(jié)構(gòu)如表 1 所示。用戶信息表Users 表結(jié)構(gòu):課程信息表Books 表結(jié)構(gòu):2.2.3 連接數(shù)據(jù)庫(kù)為數(shù)據(jù)庫(kù) 0

6、906410230 和本系統(tǒng)之間建立一個(gè)數(shù)據(jù)連接。(1)在服務(wù)器資源管理器中右擊“數(shù)據(jù)連接”節(jié)點(diǎn)。在彈出的快捷菜單中執(zhí)行“添加連接”命令,打開 Data Link Properties 對(duì)話框。切換到 Provider 選項(xiàng)卡,選中列表框中的 Microsoft OLE DB Provider for SQL Server 項(xiàng)。單擊“下一步”切換到 Connection 選項(xiàng)卡。(2)在其中的第一個(gè)下拉列表框中選擇數(shù)據(jù)庫(kù)所在服務(wù)器名稱。輸入登錄服務(wù)器信息后選擇數(shù)據(jù)庫(kù) 0906410230,然后單擊 Test Connection 按鈕。如果測(cè)試成功,單擊“確定”按鈕。52.3 主窗體設(shè)計(jì)創(chuàng)建一

7、個(gè)新的“Windows 應(yīng)用程序”類型的項(xiàng)目,名為“學(xué)生課程管理” 。將默認(rèn)創(chuàng)建的窗體命名為“學(xué)生課程管理系統(tǒng)” ,把“學(xué)生課程管理系統(tǒng)”作為本系統(tǒng)中的主界面。在窗體中添加兩個(gè) Pannel 控件,更換背景。2.3.1 設(shè)計(jì)登錄界面設(shè)計(jì)登錄界面創(chuàng)建一個(gè)新的”Windows 窗體”,名為 Login,作為本系統(tǒng)的登錄界面.在 Login 窗體上添加三個(gè) Label 控件,三個(gè) Button 控件、兩個(gè) TextBox 控件和一個(gè) comboBox 控件,添加控件后的窗體如圖所示。2.3.2 添加數(shù)據(jù)組件在工具箱中單擊“數(shù)據(jù)”選項(xiàng)卡,添加 OleDbDataAdapter 組件。(1)在工具箱中單

8、擊 OleDbDataAdapter 組件,在窗體任意位置拖動(dòng)出一個(gè)虛框矩形后釋放左鍵彈出“數(shù)據(jù)適配器配置向?qū)А睂?duì)話框。(2) 單擊“下一步” ,在打開的對(duì)話框中選擇前面建好的數(shù)據(jù)連接,然后單擊“下一步” 。(3)選中“使用 SQL 語(yǔ)句” ,然后單擊“下一步”進(jìn)入“生成 SQL 語(yǔ)句”對(duì)話框。(4)在其中的多行文本框直接輸入 SQL 語(yǔ)句“SELECT 管理者信息.* FROM 管理者信息” 。(5)單擊“下一步”按鈕,進(jìn)入“查看向?qū)ЫY(jié)果” ,單擊“完成”按鈕完成數(shù)據(jù)適配器配置。配置數(shù)據(jù)適配器后,在主窗體上就會(huì)自動(dòng)添加一個(gè) OleDbConnection 控件。2.3.3 生成數(shù)據(jù)集生成數(shù)據(jù)

9、集的步驟如下:6(1)單擊 OleDbDataAdapter 控件“屬性”對(duì)話框中的“生成數(shù)據(jù)集”鏈接,打開“生成數(shù)據(jù)集”對(duì)話框。(2)在其中選中“新建”單選按鈕,并在其后面的文本框中輸入“Lib 用戶信息” 。(3)在“選擇要添加到數(shù)據(jù)集中的表”列表框中列出了前面添加的 OleDbDataAdapter 組件所連接的表,選中該表名前面的復(fù)選框。(4)選中“將此數(shù)據(jù)集添加到設(shè)計(jì)器”復(fù)選框,單擊“確定”按鈕這樣,將生成一個(gè)名稱為“Lib 用戶信息”的數(shù)據(jù)集,該數(shù)據(jù)集以文件形式存儲(chǔ),文件名為“Lib 用戶信息.xsd” 。而在項(xiàng)目中,添加了一個(gè) DataSet 組件,名為“objLib 用戶信息”

10、 。在解決方案資源管理器中右擊該項(xiàng)目,在彈出快捷菜單中單擊“屬性”菜單項(xiàng)。在打開的“屬性頁(yè)”對(duì)話框中的“啟動(dòng)對(duì)象”下拉列表框中選擇“學(xué)生課程管理系統(tǒng)”選項(xiàng)。單擊“確定”按鈕,這樣該項(xiàng)目啟動(dòng)時(shí),就會(huì)從主窗體開始啟動(dòng)。2.3.4 設(shè)計(jì)代碼在程序運(yùn)行過(guò)程中,如果想通過(guò)單擊 LinkLabel 控件或 Button 控件進(jìn)入系統(tǒng)中的各個(gè)功能模塊(如顯示課程信息等),就會(huì)彈出一個(gè)對(duì)話框要求輸入用戶名和密碼.單擊確認(rèn)按鈕,程序就會(huì)到數(shù)據(jù)庫(kù)的用戶信息表中查找該用戶名和密碼是否存在.如果存在,允許進(jìn)入功能模塊.完成登錄功能的主要代碼集中在 UserCheck 函數(shù)中.在程序運(yùn)行過(guò)程中,在 Login 窗體的用

11、戶姓名和用戶密碼文本框中輸入用戶名和密碼后,單擊確認(rèn)按鈕就會(huì)觸發(fā) UserCheck 函數(shù)并執(zhí)行其中的代碼.如果 UserCheck 函數(shù)返回 True,那么允許用戶的操作;否則拒絕用戶的操作請(qǐng)求.在 UserCheck 函數(shù)中首先定義 Login 類型的變量 dlg_Login,然后通過(guò) ShowDialog 方法來(lái)顯示登錄窗體.如果用戶在登錄窗體中輸入用戶姓名和密碼,并且單擊了確認(rèn)按鈕,那么自動(dòng)調(diào)用一個(gè)自定義函數(shù) LoadDataSet(),由此函數(shù)進(jìn)行數(shù)據(jù)加載.如果出錯(cuò),顯示錯(cuò)誤信息,回滾整個(gè)事務(wù).具體設(shè)計(jì)代碼見附錄 1.1。2.4 信息在當(dāng)前項(xiàng)目中添加一個(gè)“Windows 窗體” ,將

12、窗體命名為“frmBookes” 。2.4.1 設(shè)計(jì)顯示界面在窗體上添加 1 個(gè) GroupBox 控件,2 個(gè) Button 控件。各按鈕控件是為了執(zhí)行相應(yīng)的操作。Buttonx 控件用來(lái)對(duì)數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行維護(hù)和修改。 2.4.2 添加數(shù)據(jù)組件向窗體添加 OleDbConnection 組件,命名為 OleDbConnection1 后將其選中,在“屬性”對(duì)話框的 ConnectionString 欄單擊,選擇所建數(shù)據(jù)庫(kù) Library。添加 OleDbDataAdapter 組件和生成數(shù)據(jù)集的方法步驟如 2.3.2 及 2.3.3。設(shè)置各 TextBox 控件的 DataBinding

13、屬性來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)集中數(shù)據(jù)的顯示(以“添加”為例)。7(1)選中“添加”控件單擊“屬性”對(duì)話框。(2)單擊 DataBinding 屬性前面的+號(hào)打開該屬性的詳細(xì)列表。(3)設(shè)置 Text 屬性:在該屬性后面欄中單擊并選擇所對(duì)應(yīng)字段。(4)設(shè)置其他 TextBox 控件的 DataBinding 屬性。2.4.3 功能實(shí)現(xiàn)顯示數(shù)據(jù),輸入課程信息,添加課程信息?;蛘唢@示數(shù)據(jù),選中課程,刪除課程。具體實(shí)現(xiàn)代碼見附 1.2。2.5 其他功能的實(shí)現(xiàn)2.5.1 設(shè)計(jì)修改密碼功能在程序運(yùn)行過(guò)程中,單擊主窗體的“開始”按鈕,會(huì)出現(xiàn)修改密碼和退出兩個(gè)選項(xiàng)。為此需要在項(xiàng)目中添加一個(gè)新的窗體“修改密碼” 。設(shè)置 L

14、abel 控件、Button 控件、TextBox 控件和 comboBox 控件。以完成修改密碼功能。2.5.2 退出功能的實(shí)現(xiàn)在程序運(yùn)行過(guò)程中,單擊主窗體的“開始”按鈕,會(huì)出現(xiàn)修改密碼和退出兩個(gè)選項(xiàng)。單擊退出可以直接退出學(xué)生課程管理系統(tǒng)。2.5.3 注冊(cè)功能的實(shí)現(xiàn)在程序運(yùn)行過(guò)程中,首先出現(xiàn)登陸界面,在登陸界面的右下角有一個(gè)注冊(cè)按鍵。為了實(shí)現(xiàn)“注冊(cè)”Button 控件的功能,需要添加一個(gè)新的窗體。設(shè)置三個(gè) Label 控件、兩個(gè) Button 控件和三個(gè) TextBox 控件以完成用戶注冊(cè)的功能。3.系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn)3.1 開發(fā)環(huán)境本系統(tǒng)使用 VisualBasic.NET 語(yǔ)言進(jìn)行開發(fā)。需

15、要 Microsoft .NET Framework SDK v1.1的支持。適用內(nèi)存不低于 256M 配備有 Windows2000,Windows2003,WindowsXP 系統(tǒng)的計(jì)算機(jī)。83.2 系統(tǒng)流程圖在本系統(tǒng)中準(zhǔn)備通過(guò)如下窗體來(lái)實(shí)現(xiàn)相應(yīng)的功能。 系統(tǒng)流程圖3.3 程序調(diào)試情況在數(shù)據(jù)連接時(shí)一定要注意窗體和相應(yīng)顯示控件的綁定關(guān)系。在把系統(tǒng)從一臺(tái)計(jì)算機(jī)移植到另一臺(tái)計(jì)算機(jī)時(shí)一定要把數(shù)據(jù)文件 library.mdf 和 library_log.LDF 同時(shí)移植,并對(duì)相應(yīng)的提供服務(wù)的 SQL Server 服務(wù)器進(jìn)行相應(yīng)的修改,否則數(shù)據(jù)正確連接并顯示。3.4 功能顯示運(yùn)行程序后首先顯示登陸界

16、面,如圖所示。9點(diǎn)擊注冊(cè)按鈕,會(huì)顯示注冊(cè)窗體,如下圖所示:在注冊(cè)顯示窗體中,可以新建一個(gè)用戶,并自定義用戶名和密碼。新用戶信息將被保存在數(shù)據(jù)庫(kù)的用戶信息表中。點(diǎn)擊取消,可以中斷并取消新建用戶的操作。在輸入并確定完用戶和密碼后,點(diǎn)擊注冊(cè)按鈕便完成了用戶的注冊(cè)。在輸入用戶名和密碼并選擇好用戶身份后,可點(diǎn)擊注銷按鈕來(lái)注銷用戶,起作用根本上是刪除數(shù)據(jù)庫(kù)中用戶信息表中的相關(guān)信息。用戶在正確的身份選擇下,輸入正確的用戶名和密碼,點(diǎn)擊登錄按鈕可以進(jìn)入學(xué)生課程管理系統(tǒng)。此次將顯示學(xué)生課程管理系統(tǒng)的主界面,如下圖所示:10在此窗體界面上有兩個(gè)操作選擇,開始和查詢。其中開始菜單下有修改密碼和退出兩個(gè)操作,查詢菜單

17、下有顯示課程信息的操作。將鼠標(biāo)拖到查詢,顯示下拉菜單,點(diǎn)擊顯示課程名稱,將出現(xiàn)一個(gè)名為 frmBooks 的新窗體,如下圖所示:該窗體不僅可以顯示當(dāng)前的課程信息,還可以通過(guò)添加和刪除操作對(duì)課程信息進(jìn)行維護(hù)。關(guān)閉 frmBooks 窗口,回到主窗體即學(xué)生課程管理系統(tǒng)窗體。將鼠標(biāo)拖到開始,顯示下拉菜單,點(diǎn)擊修改密碼,會(huì)出現(xiàn)名為“密碼修改”的新窗體,如下圖所示:11此窗體可以完成密碼重置的功能,通過(guò)用戶輸入用戶名和密碼對(duì)用戶什么進(jìn)行驗(yàn)證,然后兩次輸入新密碼以完成密碼的重置。在信息輸入完畢后,點(diǎn)擊重置便完成了密碼的修改,此功能通過(guò)改變數(shù)據(jù)庫(kù)中用戶信息表中的內(nèi)容來(lái)改變密碼,因此修改后數(shù)據(jù)庫(kù)也會(huì)發(fā)生相應(yīng)的

18、改變。重置前若需要取消操作,只需要點(diǎn)擊取消按鈕即可。需要的注意的是:在點(diǎn)擊重置按鈕后,不能再通過(guò)取消按鈕來(lái)取消相關(guān)操作,若希望使用原密碼,只能再次通過(guò)修改密碼來(lái)還原。在完成了用戶需要的操作后,程序會(huì)回到“學(xué)生課程管理系統(tǒng)”這個(gè)主窗體,若需要退出程序,可以點(diǎn)擊窗體右上角的,或者通過(guò)開始下拉菜單里面的退出選項(xiàng)退出。3.5 結(jié)論在這個(gè)系統(tǒng)的開發(fā)過(guò)程中,值得注意的幾點(diǎn)有:(1)本地?cái)?shù)據(jù)庫(kù)和服務(wù)器數(shù)據(jù)庫(kù)的連接方式有所區(qū)別,在寫程序是注意代碼的實(shí)現(xiàn)。(2) 設(shè)計(jì)數(shù)據(jù)庫(kù)的時(shí)候,要充分考慮日后使用過(guò)程中用戶需求的改變,以便于數(shù)據(jù)庫(kù)的后期維護(hù)。4.結(jié)束語(yǔ)結(jié)束語(yǔ)通過(guò)做課程設(shè)計(jì),有幾點(diǎn)感想,經(jīng)過(guò)整理如下。1. 扎實(shí)

19、的基礎(chǔ)。如果不掌握他們,很難寫出高水平的程序。而這一點(diǎn)又是我們所缺乏的。2. 不鉆牛角尖。當(dāng)遇到障礙的時(shí)候,暫時(shí)遠(yuǎn)離電腦,當(dāng)重新開始工作的時(shí)候,也許會(huì)發(fā)現(xiàn)那些難題現(xiàn)在竟然可以迎刃而解。3. 多與別人交流。三人行必有我?guī)煛?. 良好的編程風(fēng)格。注意養(yǎng)成良好的習(xí)慣,代碼的縮進(jìn)編排,變量的命名規(guī)則要始終保持一致。如果注釋和代碼不一致,那就更加糟糕。12附錄:源代碼清單附錄:源代碼清單附 1.1 主窗體設(shè)計(jì)代碼如下:using System;using System.Collections.Generic;using System.Linq;using System.Windows.Forms;nam

20、espace Library static class Program / / 應(yīng)用程序的主入口點(diǎn)。 / STAThread static void Main() Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); /Application.Run(new frmLogin(); frmMainForm fmf = new frmMainForm(); /Application.Run(fmf); /fmf.Hide = true; frmLogin fl = fl =

21、new frmLogin(); DialogResult dr = fl.ShowDialog(); if (dr = DialogResult.OK) fmf.UserRole = fl.UserRole; Application.Run(fmf); else if (dr = DialogResult.No)13 MessageBox.Show( User login information is error, the system will exit!); Application.Exit(); 附 1.2 顯示課程名稱設(shè)計(jì)代碼如下:using System;using System.C

22、ollections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace Library public partial class frmBooks : Form SqlConnection sql_Conn; SqlDataAdapter adapter; DataSet dataset; /Da

23、taTable datatable; /DataRow datarow; public frmBooks() InitializeComponent(); public long LoginDatabase() long r = -1; / connect to the database string connectionString = server=localhost;database=0906410230;integrated 14security=SSPI; /string connectionstring = server=Fs;Database=0906410230;uid=sa;

24、pwd=sa; sql_Conn = new SqlConnection(connectionString); sql_Conn.Open(); if (sql_Conn.State = ConnectionState.Open) r = 0; return r; public void LogoutDatabase() if (sql_Conn.State = ConnectionState.Open) sql_Conn.Close(); private void dataGridView1_CellContentClick(object sender, DataGridViewCellEv

25、entArgs e) public void CoursesInfo() try DataSet dsChanges = dataset.GetChanges(); if (dsChanges = null) return; DataTable dtTable = dsChanges.Tables0; DataRow drRows = dtTable.GetErrors(); if (drRows.Length = 0) int nRow = adapter.Update(dsChanges); dataset.AcceptChanges();15 else string errorMsg =

26、 null; foreach (DataRow drRow in drRows) foreach (DataColumn dcColumn in drRow.GetColumnsInError() errorMsg += drRow.GetColumnError(dcColumn) + n; MessageBox.Show(errorMsg, 錯(cuò)誤, MessageBoxButtons.OK, MessageBoxIcon.Error); catch (System.Exception e) MessageBox.Show(e.Message, 錯(cuò)誤, MessageBoxButtons.OK

27、, MessageBoxIcon.Error); dataset.RejectChanges(); private void btnAddBooks_Click(object sender, EventArgs e) CoursesInfo(); private void btndeleteBooks_Click(object sender, EventArgs e) int cRow = dgvbooks.CurrentRow.Index; dgvbooks.Rows.RemoveAt(cRow); CoursesInfo(); private void frmBooks_Load(obje

28、ct sender, EventArgs e) LoginDatabase(); adapter = new SqlDataAdapter(select * from Books, sql_Conn); dataset = new DataSet(); adapter.Fill(dataset); SqlCommandBuilder builder = new SqlCommandBuilder(adapter);16 adapter.InsertCommand = builder.GetInsertCommand(); adapter.DeleteCommand = builder.GetD

29、eleteCommand(); adapter.UpdateCommand = builder.GetUpdateCommand(); dgvbooks.DataSource = dataset.Tables0; /dgvwords.Columns0.ReadOnly = true; dgvbooks.Columns0.DefaultCellStyle.BackColor = Color.LightGray; 附 1.3 用戶注冊(cè)窗體設(shè)計(jì)代碼using System;using System.Collections.Generic;using System.ComponentModel;usi

30、ng System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace Library public partial class frmRegister : Form SqlConnection sql_Conn; SqlCommand sql_Comm; public frmRegister() InitializeComponent(); public long LoginDatabase(

31、) long r = -1; / connect to the database string connectionString = server=localhost;database=0906410230;integrated security=SSPI; /string connectionstring = server=Fs;Database=0906410230;uid=sa;pwd=sa;17 sql_Conn = new SqlConnection(connectionString); sql_Conn.Open(); if (sql_Conn.State = Connection

32、State.Open) r = 0; return r; public void LogoutDatabase() if (sql_Conn.State = ConnectionState.Open) sql_Conn.Close(); private void btnRegister_Click(object sender, EventArgs e) LoginDatabase(); string strSql = insert into Users values( + textBox1.Text + , + textBox2.Text + , + textBox3.Text + ,Stud

33、ent); sql_Comm = new SqlCommand(strSql, sql_Conn); int iRows = sql_Comm.ExecuteNonQuery(); if (iRows 0) MessageBox.Show(注冊(cè)成功! , Operation result, MessageBoxButtons.OK, MessageBoxIcon.Information); else MessageBox.Show(注冊(cè)失??!請(qǐng)重新注冊(cè)! , Operation result, MessageBoxButtons.OK, MessageBoxIcon.Information);

34、18 LogoutDatabase(); private void frmRegister_Load(object sender, EventArgs e) private void label1_Click(object sender, EventArgs e) 附 1.4 修改密碼窗體設(shè)計(jì)代碼using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;us

35、ing System.Windows.Forms;using System.Data.SqlClient;namespace Library public partial class frmPasswordChange : Form SqlConnection sql_Conn; SqlCommand sql_Comm; public frmPasswordChange() InitializeComponent();19 public long LoginDatabase() long r = -1; / connect to the database string connectionSt

36、ring = server=localhost;database=0906410230;integrated security=SSPI; /string connectionstring = server=Fs;Database=0906410230;uid=sa;pwd=sa; sql_Conn = new SqlConnection(connectionString); sql_Conn.Open(); if (sql_Conn.State = ConnectionState.Open) r = 0; return r; public void LogoutDatabase() if (

37、sql_Conn.State = ConnectionState.Open) sql_Conn.Close(); private void frmPasswordChange_Load(object sender, EventArgs e) private void btncancel_Click(object sender, EventArgs e) this.Close(); private void btnConfirm_Click_1(object sender, EventArgs e) 20 if (textBox3.Text != textBox4.Text) MessageBo

38、x.Show(The two new passowrds are not consistent with each other,n please inout them again! , Operation result, MessageBoxButtons.OK, MessageBoxIcon.Information); else LoginDatabase(); string strSql = Update Users Set UserPwd = + textBox3.Text + Where UserName = + textBox1.Text + and UserPwd= + textB

39、ox2.Text + ; sql_Comm = new SqlCommand(strSql, sql_Conn); int iRows = sql_Comm.ExecuteNonQuery(); if (iRows 0) MessageBox.Show(The password has been changed! , Operation result, MessageBoxButtons.OK, MessageBoxIcon.Information); else MessageBox.Show(The password has not been changed! , Operation res

40、ult, MessageBoxButtons.OK, MessageBoxIcon.Information); LogoutDatabase(); 21附 1.5 用戶登錄設(shè)計(jì)代碼如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;nam

41、espace Library public partial class frmLogin : Form SqlConnection sql_Conn; SqlCommand sql_Comm; public string UserRole; public frmLogin() InitializeComponent(); private void FrmLogin_Load(object sender, EventArgs e) string items = Admin,Student; comboBox1.Items.AddRange(items); comboBox1.SelectedIndex = 0; public long LoginDatabase() long r = -1; / connect to the database string connectionString=server=localhost;

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論