C#學(xué)生信息管理系統(tǒng)_第1頁
C#學(xué)生信息管理系統(tǒng)_第2頁
C#學(xué)生信息管理系統(tǒng)_第3頁
C#學(xué)生信息管理系統(tǒng)_第4頁
C#學(xué)生信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、洛 陽 理 工 學(xué) 院課 程 設(shè) 計(jì) 報(bào) 告 課程名稱 高級語言C#課程設(shè)計(jì) 設(shè)計(jì)題目 學(xué)生信息管理系統(tǒng) 專 業(yè) 電腦科學(xué)與技術(shù) 班 級 B130506 學(xué) 號 B13050624 姓 名 張葵 完成日期 2015.12.31 課 程 設(shè) 計(jì) 任 務(wù) 書設(shè)計(jì)題目: 學(xué)生信息管理系統(tǒng) 教務(wù)員可以輸入學(xué)生、教師、班級、課程信息,一個(gè)班級只屬于一個(gè)專業(yè),一個(gè)學(xué)生只屬于一個(gè)班級。教務(wù)員負(fù)責(zé)輸入每個(gè)專業(yè)、每個(gè)班級需要學(xué)習(xí)哪些課程,指定課程的任課教師。一個(gè)教師可以教授多個(gè)班的多門課程。教師可以查看學(xué)習(xí)該課程的學(xué)生名單。課程結(jié)束后,教師可以錄入課程成績。課程分兩類,必修課和選修課。學(xué)生可以選修課程,每學(xué)期幾

2、門。學(xué)生可以查看自己各門課程的成績。學(xué)生還可以進(jìn)行評教,給老師打分。系統(tǒng)管理員可以輸入教室信息,并結(jié)合班級、課程、教室信息實(shí)現(xiàn)自動(dòng)排課。 指導(dǎo)教師: 張文學(xué) 2015 年 12 月 27 日課 程 設(shè) 計(jì) 評 語 成績: 指導(dǎo)教師:_ 2015 年 12 月 31 日學(xué)習(xí)文檔 僅供參考目錄第 1 章 需求和可行性分析3需求分析31.1.1 功能需求3性能需求3可行性分析41.2.1 技術(shù)可行性41.2.2 經(jīng)濟(jì)可行性4第2章 系統(tǒng)設(shè)計(jì)概述52.1 整體設(shè)計(jì)概述52.1.1 設(shè)計(jì)流程52.1.2 設(shè)計(jì)思路62.2 功能模塊介紹62.2.1 學(xué)生信息模塊62.2.2 教師模塊72.2.3 教務(wù)員模

3、塊8管理員登錄9第3章 數(shù)據(jù)庫的搭建和實(shí)現(xiàn)10數(shù)據(jù)庫設(shè)計(jì)概述103.2 E-R圖的設(shè)計(jì)103.3 數(shù)據(jù)庫表的創(chuàng)建12學(xué)生表的創(chuàng)建123.3.2 教師表的創(chuàng)建133.3.3 課程表的創(chuàng)建13成績表的創(chuàng)建14存儲(chǔ)過程的創(chuàng)建143.4.1 分配班級存儲(chǔ)過程143.4.2 班級信息的存儲(chǔ)過程153.4.3 學(xué)生課程的存儲(chǔ)過程15學(xué)生成績存儲(chǔ)過程16第4章 C#高級語言的實(shí)現(xiàn)17概述17數(shù)據(jù)庫的連接174.3 開始界面的設(shè)計(jì)18系統(tǒng)管理員184.4.1 登錄功能和界面184.4.2 管理員顯示界面21學(xué)生功能介紹和實(shí)現(xiàn)264.5.1 登錄界面和功能實(shí)現(xiàn)264.5.2 學(xué)生用戶界面27第5章 結(jié)論29第6

4、 章 謝辭30參考文獻(xiàn)31第 1 章 需求和可行性分析學(xué)生信息管理系統(tǒng)是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要。學(xué)校的管理人員可以通過電腦對學(xué)生信息進(jìn)行有效的管理,防止了以往人工管理的復(fù)雜和耗時(shí)費(fèi)力的勞動(dòng),也大大的能夠減少管理人員的工作量,可以有效的節(jié)約學(xué)校的開支。1.1.1 功能需求作為一個(gè)學(xué)生的信息管理系統(tǒng),必須要有管理人員能夠進(jìn)行對學(xué)生的信息進(jìn)行有效的管理,因此,系統(tǒng)必須預(yù)留一個(gè)管理員的登錄窗口和登錄之后所能進(jìn)行的操作,在學(xué)生信息管理系統(tǒng)中,管理員具有最高的權(quán)限,可以對學(xué)生、老師、班級、專業(yè)等等進(jìn)行添加、刪除、修改個(gè)查詢。除了擁有管理員之外,還應(yīng)該擁有

5、教務(wù)處對學(xué)生進(jìn)行管理,例如:對學(xué)生課程,成績等等具有一定的權(quán)限。此外,還應(yīng)該有老師的一個(gè)權(quán)限,老師在帶完一門課之后可以對學(xué)生進(jìn)行一個(gè)成績錄入和平時(shí)布置作業(yè)的功能。最后是學(xué)生自己擁有的功能,學(xué)生在考試結(jié)束后可以利用系統(tǒng)登錄自己的賬戶對成績進(jìn)行查詢。在學(xué)生信息管理系統(tǒng)中,要明確各類用戶所能擁有的最高權(quán)限,如果一旦權(quán)限的問題搞錯(cuò)以后,整個(gè)系統(tǒng)就會(huì)變得沒有價(jià)值。例如:學(xué)生只有對成績的查詢功能,而不能對成績擁有修改和刪除以及插入的功能。老師只能夠?qū)W(xué)生進(jìn)行成績的錄入和平時(shí)布置作業(yè),而不能刪除學(xué)生的個(gè)人信息等權(quán)限。要設(shè)立不同的異常機(jī)制,這樣不會(huì)因?yàn)橛脩舻腻e(cuò)誤的操作而使得系統(tǒng)瞬時(shí)奔潰。我們要在代碼中設(shè)置不同

6、的異常拋出機(jī)制,這樣就可以使得用戶在進(jìn)行了錯(cuò)誤的或者違反規(guī)則的操作之后,系統(tǒng)不會(huì)出現(xiàn)突然的停止運(yùn)轉(zhuǎn)??尚行苑治鲭S著電腦語言和數(shù)據(jù)服務(wù)的不斷發(fā)展,使得許多的現(xiàn)實(shí)問題都可以利用電腦來幫助人類實(shí)現(xiàn)輕巧,方便的管理。在教育上,學(xué)生是一個(gè)龐大的群體,因此技術(shù)人員早早就開始想方法解決這個(gè)問題,因此,目前對于學(xué)生信息的管理各種語言都能夠編寫出一套完整的、可用的學(xué)生信息管理系統(tǒng)。1.2.1 技術(shù)可行性在這套系統(tǒng)的開發(fā)中,采用的是開發(fā)語言是C#,軟件是Visio Studio2010,C#是微軟對問題的解決方案。C#是一種最新的、面向?qū)ο蟮木幊陶Z言。它使得程序員可以快速地編寫各種基于Microsoft.NET平

7、臺(tái)的應(yīng)用程序,Microsoft .NET提供了一系列的工具和服務(wù)來最大程度地開發(fā)利用計(jì)算與通訊領(lǐng)域。正是由于C#面向?qū)ο蟮淖吭皆O(shè)計(jì),使它成為構(gòu)建各類組件的理想之選-無論是高級的商業(yè)對象還是系統(tǒng)級的應(yīng)用程序。使用簡單的C#語言結(jié)構(gòu),這些組件可以方便的轉(zhuǎn)化為XML 網(wǎng)絡(luò)服務(wù),從而使它們可以由任何語言在任何操作系統(tǒng)上通過Internet進(jìn)行調(diào)用。最重要的是,C#使得C+程序員可以高效的開發(fā)程序,而絕不損失C/C+原有的強(qiáng)大的功能。因?yàn)檫@種繼承關(guān)系,C#與C/C+具有極大的相似性,熟悉類似語言的開發(fā)者可以很快的轉(zhuǎn)向C#。數(shù)據(jù)庫采用的是SQL Server2008R2,這個(gè)SQL數(shù)據(jù)庫版本是微軟公司推

8、出的針對微軟用戶的一種關(guān)系型數(shù)據(jù)庫,語言簡單,實(shí)用。與Visio Studio 2010結(jié)合相對簡單實(shí)用。1.2.2 經(jīng)濟(jì)可行性現(xiàn)在隨著互聯(lián)網(wǎng)絡(luò)、電腦技術(shù)的發(fā)展,數(shù)字城市成為當(dāng)前熱點(diǎn)話題。同時(shí)在國家政策給予大力支持的條件下,這些技術(shù)熱點(diǎn)給社會(huì)產(chǎn)生了極大的影響,不僅給生活、學(xué)習(xí)和管理帶來了新的體驗(yàn),同時(shí)也帶動(dòng)了經(jīng)濟(jì)的增長。學(xué)生管理系統(tǒng)使用比較簡單的C#語言開發(fā),而且目前中國的學(xué)校和教育機(jī)構(gòu)眾多,許多的地方都需要用到這套學(xué)生信息管理系統(tǒng),因此學(xué)生信息管理系統(tǒng)具有廣闊的市場前景和發(fā)展動(dòng)力。第2章 系統(tǒng)設(shè)計(jì)概述2.1 整體設(shè)計(jì)概述這套學(xué)生信息管理系統(tǒng)旨在為用戶提供更加有效的、方便的和快捷的學(xué)生的管理系

9、統(tǒng)。本套系統(tǒng)在結(jié)構(gòu)上由數(shù)據(jù)庫和高級語言兩部分組成,數(shù)據(jù)庫部分負(fù)責(zé)此套系統(tǒng)所要用到的所有的數(shù)據(jù)庫的表的創(chuàng)建和所用到的存儲(chǔ)過程的創(chuàng)建。C#部分是具體的設(shè)計(jì)UI界面和具體的邏輯實(shí)現(xiàn),用戶可以通過在自己電腦上點(diǎn)擊UI上的控件進(jìn)行操作。2.1.1 設(shè)計(jì)流程圖 1 整體設(shè)計(jì)思路圖2.1.2 設(shè)計(jì)思路這套學(xué)生信息管理系統(tǒng)是由數(shù)據(jù)庫和業(yè)務(wù)邏輯層和UI層三部分構(gòu)成,用戶在UI層上進(jìn)行操作,數(shù)據(jù)通過業(yè)務(wù)邏輯層數(shù)據(jù)傳至數(shù)據(jù)庫,對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行修改,在用戶需要用到數(shù)據(jù)庫中的數(shù)據(jù)時(shí),數(shù)據(jù)會(huì)從數(shù)據(jù)庫中提出經(jīng)過業(yè)務(wù)邏輯層上傳至UI層,以供用戶查閱和進(jìn)行其他的操作。業(yè)務(wù)邏輯層主要負(fù)責(zé)的工作就是將UI傳來的數(shù)據(jù)進(jìn)行分析,并

10、且做出判斷,然后根據(jù)判斷出的結(jié)果進(jìn)行對數(shù)據(jù)庫的訪問。數(shù)據(jù)庫的主要任務(wù)就是為系統(tǒng)提供數(shù)據(jù)的存儲(chǔ)。2.2 功能模塊介紹以下會(huì)對本套系統(tǒng)中的主要模塊做一個(gè)簡單的介紹與分析。2.2.1 學(xué)生信息模塊學(xué)生模塊的主要功能是對自己的成績能夠有效的進(jìn)行查詢和能夠?qū)處熥龀鲇行У脑u價(jià)在學(xué)期末。每個(gè)學(xué)生只能夠?qū)ψ约旱某煽冞M(jìn)行有效的查詢,在登錄自己的賬戶之后,其他的同學(xué)的成績是不可見的,這樣也是起到了一種隱私的保護(hù)作用,而且學(xué)生在登錄自己的賬戶之后沒有成績修改和添加以及刪除的功能。圖2 學(xué)生用戶登錄2.2.2 教師模塊教師在使用該系統(tǒng)時(shí),主要的任務(wù)是向?qū)W生下達(dá)作業(yè)任務(wù)和在期末考試結(jié)束之后給給學(xué)生錄入成績,使得學(xué)生能

11、夠通過自己的賬戶登錄該系統(tǒng)之后能夠看到自己的成績。在錄入成績之后不能對學(xué)生的成績進(jìn)行修改。圖3 教師用戶登錄2.2.3 教務(wù)員模塊教務(wù)員使用該套系統(tǒng)的主要目的是對教室進(jìn)行管理,以及能夠根據(jù)各個(gè)班級的具體課程情況對班級進(jìn)行排課。圖 4 教務(wù)員登錄管理員是此套系統(tǒng)的擁有最高的權(quán)限,他可以添加學(xué)生、老師和教務(wù)員的信息,以及進(jìn)行修改和刪除等等。圖 5 管理員登錄第3章 數(shù)據(jù)庫的搭建和實(shí)現(xiàn)數(shù)據(jù)庫在現(xiàn)代的系統(tǒng)的開發(fā)中,起到了非常重要的作用。數(shù)據(jù)庫可以對數(shù)據(jù)起到一種長期保存的效果,而且可以利用終端隨時(shí)隨地的通過網(wǎng)絡(luò)來訪問服務(wù)器,進(jìn)而訪問數(shù)據(jù)庫,找到自己想要的數(shù)據(jù)和信息。3.2 E-R圖的設(shè)計(jì)ER圖在設(shè)計(jì)數(shù)據(jù)

12、圖的時(shí)候起到了非常關(guān)鍵的作用,可以從ER圖中清晰的看到各個(gè)對象之間的關(guān)系和它具有的屬性,因此,在創(chuàng)建數(shù)據(jù)庫的時(shí)候會(huì)更加的方便和得心應(yīng)手。圖 6 學(xué)生的ER圖圖7 教師的ER圖圖 8 教務(wù)員ER圖圖 9管理員ER圖圖 10 班級ER圖圖 11 課程ER圖圖12 成績ER圖3.3 數(shù)據(jù)庫表的創(chuàng)建數(shù)據(jù)庫中的數(shù)據(jù)都是通過表來進(jìn)行存儲(chǔ)的,因此,要將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中,必須將表的結(jié)構(gòu)進(jìn)行合理化的設(shè)計(jì),ER圖為表的創(chuàng)建提供了良好的理論支撐,現(xiàn)在在建表的時(shí)候要考慮的是數(shù)據(jù)的存儲(chǔ)大小,我們現(xiàn)在采用可以變換大小的varchar類型進(jìn)行存儲(chǔ),這樣不會(huì)導(dǎo)致內(nèi)存的無故浪費(fèi)。圖 13 整體表的創(chuàng)建學(xué)生表中主要是學(xué)生的一些

13、屬性,例如學(xué)生的學(xué)號,年齡和性別等等,在學(xué)生管理系統(tǒng)中,學(xué)號作為該表的主鍵,設(shè)計(jì)如下:圖14 學(xué)生表的創(chuàng)建3.3.2 教師表的創(chuàng)建教師表中也是教師的一些屬性,例如教工號、和教室名等等,教工號為主鍵,設(shè)計(jì)如下:圖 15 教師表的創(chuàng)建3.3.3 課程表的創(chuàng)建在課程表中,屬性是關(guān)于課程的一些信息,例如課程號、課程名和該課程的學(xué)時(shí)和學(xué)分。課程號是主鍵,設(shè)計(jì)如下:圖16 課程表的創(chuàng)建在創(chuàng)建完學(xué)生表和課程表之后,需要一個(gè)成績表來顯示學(xué)生的成績信息,成績要與學(xué)生個(gè)人和課程能夠匹配上,在這里,需要設(shè)置學(xué)號和課程號為主鍵,而學(xué)生表中的學(xué)號和課程表中的課程號都是外鍵,設(shè)計(jì)如下:圖17 成績表的創(chuàng)建在使用數(shù)據(jù)庫的時(shí)

14、候有時(shí)候不是一個(gè)表所能完成的一項(xiàng)任務(wù),我們往往會(huì)采用存儲(chǔ)過程進(jìn)行多表的結(jié)合使用,例如:要查詢某個(gè)專業(yè)下的某個(gè)年級的某個(gè)班的一位同學(xué)的信息并且把這些信息顯示出來,這樣就會(huì)涉及到專業(yè)表、年級表、班級表和學(xué)生表。因此,在這個(gè)時(shí)候我們需要將多表進(jìn)行結(jié)合使用,這里就會(huì)使用到存儲(chǔ)過程。在本套系統(tǒng)中,我采用了幾個(gè)存儲(chǔ)過程來對學(xué)生的信息進(jìn)行管理。圖18 整體的存儲(chǔ)過程3.4.1 分配班級存儲(chǔ)過程在分配班級的時(shí)候要用到班級和專業(yè)兩個(gè)表,因此要通過這兩個(gè)表進(jìn)行分配,從而確定某一個(gè)班是屬于哪一個(gè)專業(yè),代碼如下:USE student_adminGOSET ANSI_NULLS ONGOSET QUOTED_IDEN

15、TIFIER ONGOALTER PROCEDURE dbo.CLASS_CHOOSEpro varchar(20), cla varchar(20)as from professional,course,classwhere professional.專業(yè)號 = class.專業(yè)號 and professional.專業(yè)名 = pro and class.班級號 = cla3.4.2 班級信息的存儲(chǔ)過程查詢某一個(gè)班級信息的功能,這個(gè)功能函數(shù)既可以在數(shù)據(jù)庫中用存儲(chǔ)過程實(shí)現(xiàn)也可以在C#中通過語言的邏輯來實(shí)現(xiàn),在這套系統(tǒng)中,我采用的是利用在數(shù)據(jù)庫中建立了一般班級信息的存儲(chǔ)過程來實(shí)現(xiàn)的,在C#中通過

16、調(diào)用該存儲(chǔ)過程,然后向其中傳遞一個(gè)參數(shù)就可以實(shí)現(xiàn)。代碼如下:USE student_adminGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER procedure dbo.class_messageclassno varchar(20)asselect 班級號,專業(yè)名,班主任,班長,人數(shù)from classwhere 班級號 = classno3.4.3 學(xué)生課程的存儲(chǔ)過程學(xué)生的課程信息不僅僅包含了學(xué)生類,而且還包含了課程類,我們需要將這兩個(gè)表進(jìn)行有效的結(jié)合進(jìn)行使用,在這套系統(tǒng)中我采用的是利用在數(shù)據(jù)庫中建立一個(gè)學(xué)生課程的存儲(chǔ)過程來顯示學(xué)生

17、的課程信息,預(yù)留一個(gè)輸入?yún)?shù)學(xué)生的學(xué)號,可以利用學(xué)號就可以查詢到該學(xué)生的課程信息。代碼如下:USE student_adminGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER procedure dbo.student_coursecourseno varchar(20)asfrom student,course,gradewhere student.學(xué)號 = grade.學(xué)號 and course.課程號 = grade.課程號 and 課程名 = courseno 在學(xué)生管理系統(tǒng)中,非常重要的一環(huán)就是學(xué)生可以查看自己的成績,在這套系統(tǒng)

18、中,采用的也是在數(shù)據(jù)庫中建立一個(gè)關(guān)于學(xué)生的存儲(chǔ)過程,是按照學(xué)號進(jìn)行查詢的,在C#中,調(diào)用該存儲(chǔ)過程,輸入一個(gè)學(xué)號的參數(shù),便可以查詢該學(xué)生的成績信息,防止查詢了其他人成績,起到隱私保護(hù)的作用。代碼如下:USE student_adminGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER procedure dbo.student_gradestudent_id varchar(20)asfrom student,course,grade,choosewhere student.學(xué)號 = grade.學(xué)號 and choose.選課號 = gr

19、ade.選課號 and student.學(xué)號 = student_id第4章 C#高級語言的實(shí)現(xiàn)在數(shù)據(jù)庫進(jìn)行完設(shè)計(jì)之后,就要使用C#這種高級語言將他真正的能夠和用戶產(chǎn)生聯(lián)系,用戶接觸到的是UI層面,因此我們的任務(wù)就是通過UI層進(jìn)行數(shù)據(jù)傳遞到業(yè)務(wù)邏輯層然后進(jìn)行數(shù)據(jù)的轉(zhuǎn)化和業(yè)務(wù)邏輯的實(shí)現(xiàn)。在本套系統(tǒng)中,連接數(shù)據(jù)庫我采用的是利用數(shù)據(jù)源來連接數(shù)據(jù)庫,這樣就可以將連接數(shù)據(jù)庫的字符串和commod都封裝在數(shù)據(jù)源中,為每個(gè)表都創(chuàng)建好數(shù)據(jù)源和數(shù)據(jù)適配器,這樣可以減少代碼量,而且也會(huì)使得程序變得簡潔明了,在使用一個(gè)數(shù)據(jù)庫中的某一個(gè)表的時(shí)候只需要?jiǎng)?chuàng)建一個(gè)該表的數(shù)據(jù)適配器和一個(gè)共有的dataset即可。關(guān)系圖如下:

20、圖19 數(shù)據(jù)源圖示4.3 開始界面的設(shè)計(jì)開始界面主要是讓用戶選擇自己的身份類型進(jìn)行系統(tǒng)的登錄。如果用戶選擇的是系統(tǒng)管理員的登錄方式,系統(tǒng)會(huì)自動(dòng)的進(jìn)行頁面的跳轉(zhuǎn),跳轉(zhuǎn)到系統(tǒng)管理員的登錄界面。圖 20 登錄類型選擇4.4系統(tǒng)管理員4.4.1 登錄功能和界面登錄界面主要是讓用戶輸入賬號和密碼進(jìn)行登錄,界面的風(fēng)格是一致的,只是通過調(diào)用不同的數(shù)據(jù)庫的信息進(jìn)行不同的登錄。圖21 登錄界面用戶在輸入賬號和密碼的時(shí)候,系統(tǒng)會(huì)調(diào)用數(shù)據(jù)中的相應(yīng)的表進(jìn)行查看是否與表中的數(shù)據(jù)匹配,如果匹配則能夠登錄成功,否則不成功。如果登錄成功,該賬號和密碼會(huì)被記錄到本地的文件中進(jìn)行存儲(chǔ),以此到達(dá)下次登錄時(shí)的快捷和方便,代碼如下:p

21、rivate void button1_Click(object sender, EventArgs e) /登?錄?到?管理員的?界?面? string name = null; string pass = null; StringBuilder sname = new StringBuilder(管理賬?號?=); sname.Append(comboBox1.Text); sname.Append(); if (comboBox1.Text != ) try DataRow row = table1.Select(sname.ToString(); row1 = row0; name =

22、 row10.ToString(); pass = row12.ToString(); catch (Exception ex) MessageBox.Show(ex.Message); if (name = comboBox1.Text) / MessageBox.Show(name); if (textBox1.Text = pass) /進(jìn)?入?管理員的?后臺(tái) admin_show a = new admin_show(); a.Show(); if (checkBox1.CanFocus) if (File.Exists(txt) String ss = name, pass ; Fi

23、le.WriteAllLines(txt, ss); else File.Create(txt); else String ss = , ; File.WriteAllLines(txt, ss); else MessageBox.Show(沒?有D此?管理員); else /學(xué)生進(jìn)?入? MessageBox.Show(賬?號?和密碼?不?匹配?); / label4.Text = 賬?號?和密碼?不?匹配?,?請?重?新?輸?入?; else MessageBox.Show(請?輸?入?賬?號?); 4.4.2 管理員顯示界面在管理員登錄自己的賬號之后,可以對學(xué)生、老師、課程和班級進(jìn)行查詢

24、,添加、刪除、修改和保存。這套系統(tǒng)中,可以根據(jù)學(xué)號和進(jìn)行查找,輸入學(xué)號或者,會(huì)進(jìn)一步的調(diào)用數(shù)據(jù)庫進(jìn)行查詢,如果數(shù)據(jù)庫中有該成員的信息,則會(huì)被現(xiàn)實(shí)在右邊的顯示框中,在datagaridview中顯示的是該類成員所有的數(shù)據(jù)信息。在管理員查到成員信息之后,可以根據(jù)現(xiàn)在的情況進(jìn)行對成員的信息進(jìn)行相應(yīng)的操作,例如:有一個(gè)學(xué)生退學(xué),管理員可以查詢到該生之后將該生信息進(jìn)行刪除。如果有一個(gè)老師的登錄密碼忘記了,管理員可以登錄系統(tǒng)進(jìn)行對該教師密碼的一個(gè)重置。圖22 管理員查詢學(xué)生信息按照學(xué)號查詢學(xué)生信息的代碼如下:private void button3_Click(object sender, EventAr

25、gs e) /按學(xué)號?查找 /StringBuilder stringBuilder = new StringBuilder(); if (comboBox1.Text.Length!=0) DataRow row = dataset.Tablesstudent.Select(學(xué)號?= + comboBox1.Text.Trim()+); try datarow1 = row0; textBox5.Text = datarow10.ToString(); textBox6.Text = datarow11.ToString(); textBox7.Text = datarow12.ToStri

26、ng(); textBox8.Text = datarow13.ToString(); textBox9.Text = datarow14.ToString(); textBox10.Text = datarow15.ToString(); textBox11.Text = datarow16.ToString(); textBox12.Text = datarow17.ToString(); textBox13.Text = datarow18.ToString(); catch(Exception ex) MessageBox.Show(ex.Message); 按照查詢學(xué)生信息的代碼如下

27、:private void button4_Click(object sender, EventArgs e) /按姓?名?查找 if (textBox1.TextLength != 0) StringBuilder name = new StringBuilder(姓?名?=); name.Append(textBox1.Text); name.Append(); DataRow row = st_table.Select(name.ToString(); try String str = row0.ToString(); / DataRow row = dataset.Tablesadmi

28、n.Select(姓?名?= + textBox8.Text).ToString(); datarow1 = row0; textBox5.Text = datarow10.ToString(); textBox6.Text = datarow11.ToString(); textBox7.Text = datarow12.ToString(); textBox8.Text = datarow13.ToString(); textBox9.Text = datarow14.ToString(); textBox10.Text = datarow15.ToString(); textBox11.

29、Text = datarow16.ToString(); textBox12.Text = datarow17.ToString(); textBox13.Text = datarow18.ToString(); catch (Exception ex) MessageBox.Show(ex.Message); 添加學(xué)生信息代碼:private void button5_Click(object sender, EventArgs e) /添加 DataRow row = st_table.NewRow(); if (textBox5.Text = ) row0 = DBNull.Value;

30、 else row0 = textBox5.Text.Trim(); if (textBox6.Text = ) row1 = DBNull.Value; else row1 = textBox6.Text.Trim(); if (textBox7.Text = ) row2 = DBNull.Value; else row2 = textBox7.Text.Trim(); if (textBox8.Text = ) row3 = DBNull.Value; else row3 = textBox8.Text.Trim(); if (textBox9.Text = ) row4 = DBNul

31、l.Value; else row4 = textBox9.Text.Trim(); if (textBox10.Text = ) row5 = DBNull.Value; else row5 = textBox10.Text.Trim(); if (textBox11.Text = ) row6 = DBNull.Value; else row6 = textBox11.Text.Trim(); if (textBox12.Text = ) row7 = DBNull.Value; else row7 = textBox12.Text.Trim(); if (textBox13.Text =

32、 ) row8 = DBNull.Value; else row8 = textBox13.Text.Trim(); try st_table.Rows.Add(row); catch (Exception ex) MessageBox.Show(ex.Message); 修改學(xué)生信息代碼如下:private void button6_Click(object sender, EventArgs e) /修T改? try if (textBox5.Text = ) datarow10 = DBNull.Value; else datarow10 = textBox5.Text.Trim();

33、if (textBox6.Text = ) datarow11 = DBNull.Value; else datarow11 = textBox6.Text.Trim(); if (textBox7.Text = ) datarow12 = DBNull.Value; else datarow12 = textBox7.Text.Trim(); if (textBox8.Text = ) datarow13 = DBNull.Value; else datarow13 = textBox8.Text.Trim(); if (textBox9.Text = ) datarow14 = DBNul

34、l.Value; else datarow14 = textBox9.Text.Trim(); if (textBox10.Text = ) datarow15 = DBNull.Value; else datarow15 = textBox10.Text.Trim(); if (textBox11.Text = ) datarow16 = DBNull.Value; else datarow16 = textBox11.Text.Trim(); if (textBox12.Text = ) datarow17 = DBNull.Value; else datarow17 = textBox1

35、2.Text.Trim(); if (textBox13.Text = ) datarow18 = DBNull.Value; else datarow18 = textBox13.Text.Trim(); catch (Exception ex) MessageBox.Show(ex.Message); 刪除學(xué)生信息代碼如下: private void button7_Click(object sender, EventArgs e) /刪?除y DataView view = new DataView(dataset.Tablesstudent); StringBuilder bulid

36、= new StringBuilder(學(xué)號?=); try bulid.Append(datarow10); bulid.Append(); view.RowFilter = bulid.ToString(); view.Delete(0); view.EndInit(); /ds1.Tables0.Rows.Remove(row4); catch (Exception ex) MessageBox.Show(沒?有D此?學(xué)生 + ex.Message, 提示?, MessageBoxButtons.OK, MessageBoxIcon.Information); textBox5.Text = ; textBox6.Text = ; textBox7.Text = ; textBox8.Text = ; textBox9.Text = ; textBox10.Text = ; textBox11.Text = ; textBox12.Text = ; textBox13.Text = ; / textBox14.Text = ; 保存學(xué)生信息代碼如下: private void button8_Click(object sender, EventArgs e) /保存? try student_ap.Upd

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論