用C#制作學(xué)生信息管理系統(tǒng)_第1頁(yè)
用C#制作學(xué)生信息管理系統(tǒng)_第2頁(yè)
用C#制作學(xué)生信息管理系統(tǒng)_第3頁(yè)
用C#制作學(xué)生信息管理系統(tǒng)_第4頁(yè)
用C#制作學(xué)生信息管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩58頁(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、課程設(shè)計(jì) (論文)學(xué)生信息管理系統(tǒng)系別 :計(jì)算機(jī)系專業(yè)(班級(jí)):作者(學(xué)號(hào)):計(jì)算機(jī)科學(xué)與技術(shù) 2010 級(jí) 3 班馮深海(51002013036)指 導(dǎo) 教 師 :王磊完 成 日 期 : 2011 年 6 月 12 日蚌埠學(xué)院教務(wù)處制精選摘要摘要隨著科學(xué)技術(shù)的不斷進(jìn)步,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它 已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。作為計(jì)算機(jī)應(yīng)用的一個(gè)重要部分, 信息查詢系統(tǒng)是一個(gè)由用戶和計(jì)算機(jī)組成的進(jìn)行信息管理、信息收集、存儲(chǔ)處理、傳遞使用 和維護(hù)的軟件系統(tǒng)。學(xué)生信息管理系統(tǒng)是學(xué)校管理學(xué)生信息的一種必不可少的的工具,它相 對(duì)與手工書寫管理更加便利,快

2、捷,節(jié)約大量時(shí)間,大幅提高日常查詢效率。關(guān)于學(xué)生信息管理系統(tǒng),論文主要分幾個(gè)重點(diǎn)部分來(lái)介紹它的功能的實(shí)現(xiàn)。對(duì)各個(gè)功 能的描述,內(nèi)容簡(jiǎn)潔,明了,結(jié)構(gòu)緊湊 。學(xué)生信息管理系統(tǒng)可以滿足用戶的需求,具體體 現(xiàn)在對(duì)學(xué)生信息的錄入,修改,查詢,修改等操作。實(shí)現(xiàn)其中的操作除了對(duì)各個(gè)類中代碼 書寫,更重要的還需要書寫與后臺(tái)數(shù)據(jù)庫(kù)交互的代碼, 滿足數(shù)據(jù)庫(kù)信息的輸入和輸出。 學(xué)生信息管理系統(tǒng)的開(kāi)發(fā)目的是為了實(shí)現(xiàn)學(xué)生個(gè)人信息的信息化管理。本系統(tǒng)需要完成 功能有:1. 登錄學(xué)生管理系統(tǒng);2. 錄入學(xué)生信息,包括學(xué)號(hào),姓名,性別,出生日期;3. 修改已知學(xué)號(hào)的學(xué)生信息;4. 刪除已知學(xué)號(hào)的學(xué)生信息;5. 查詢已知學(xué)號(hào)的

3、學(xué)生信息;關(guān)鍵詞 登錄(login),錄入(formaddstudent),修改(studentmodify),刪除 (studentdelete) ,查詢(studensearch)精選第一章 引言(或概述)第一章 引言(或概述)學(xué)生信息管理系統(tǒng)開(kāi)發(fā)我們需具備對(duì)后臺(tái)數(shù)據(jù)庫(kù)表的建立,插入,查詢,刪除,更新, visual studio2005 工具的使用 和面向?qū)ο?c#語(yǔ)言等知識(shí)。通過(guò)對(duì)學(xué)生信息管理系統(tǒng)的設(shè) 計(jì)慢慢了解,深入學(xué)習(xí),從而達(dá)到熟練掌握.net 基本結(jié)構(gòu)以及 c#語(yǔ)言的基本知識(shí)和技能; 基本掌握面向?qū)ο蟪绦蜷_(kāi)發(fā)的基本思路和方法;掌握 ado.net 數(shù)據(jù)庫(kù)開(kāi)發(fā)基本知識(shí);能夠利 用所

4、學(xué)的基本知識(shí)和技能,進(jìn)行簡(jiǎn)單數(shù)據(jù)庫(kù)應(yīng)用程序設(shè)計(jì)。根據(jù)課題的要求,給出解決問(wèn)題的方案,通過(guò)分析問(wèn)題、分解問(wèn)題來(lái)解決問(wèn)題,最終達(dá)到熟 練掌握 c#語(yǔ)言的運(yùn)用和 visual studio2005 工具的使用。第二章2.1設(shè)計(jì)預(yù)案第二章學(xué)生信息管理系統(tǒng)的介紹2.1 學(xué)生信息管理系統(tǒng)的介紹學(xué)生信息管理系統(tǒng)主要分為四種模塊:錄入模塊、刪除模塊、修改模塊、查找模塊。逐步對(duì)各個(gè)模塊的代碼書寫,實(shí)現(xiàn)多種功能,讓用戶快速而便捷地使用學(xué)生信息管理系 統(tǒng)。用戶可以錄入學(xué)生信息,輸入學(xué)生的學(xué)號(hào)從而刪除學(xué)生信息、查找學(xué)生信息、修改學(xué)生 信息。2.222.1 開(kāi)發(fā)方案2.2.1 開(kāi)發(fā)方案精選本人計(jì)劃編寫一個(gè)人學(xué)生信息管理

5、系統(tǒng),主要功能是滿足用戶對(duì)學(xué)生信息的管理,包括 錄入、刪除、修改、查詢功能。2. 2.2模塊設(shè)計(jì)及分析本次設(shè)計(jì)主要分為四種模塊:錄入模塊、刪除模塊、修改模塊、查找模塊、詳細(xì)可以參 考下圖:formmain 界面用戶登錄formmain 界面操作指令錄入學(xué)生基本信息按學(xué)號(hào)修改學(xué)生信息按學(xué)號(hào)刪除學(xué)生信息按學(xué)號(hào)查找學(xué)生信息注銷學(xué)生信息管理系統(tǒng)學(xué)生基本信息表圖 2-1精選第三章設(shè)計(jì)步驟和要點(diǎn)設(shè)計(jì)步驟和要點(diǎn)本次設(shè)計(jì)和數(shù)據(jù)庫(kù)緊密相連,首先我們根據(jù)題意設(shè)計(jì)相關(guān)的數(shù)據(jù)庫(kù)以及相關(guān)的數(shù)據(jù)表 (book,manager,user)。然后我們把這次的設(shè)計(jì)內(nèi)容分成了若干個(gè)模塊,逐次實(shí)現(xiàn)各個(gè)模塊 的功能,這樣不僅便于功能

6、的實(shí)現(xiàn),而且外觀美觀,層次清晰。制作過(guò)程主要是頁(yè)面的設(shè)計(jì) 和相關(guān)代碼的編寫。3.1 數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明學(xué)生信息數(shù)據(jù)表列名snosnamesexsbirthday數(shù)據(jù)類型ncharnvarcharncharnchar數(shù)據(jù)長(zhǎng)度920210允許 null不允許允許允許允許備注學(xué)生學(xué)號(hào)學(xué)生姓名學(xué)生性別出生日期圖 3-1 學(xué)生信息數(shù)據(jù)表用戶登錄表列名idusernamepassword數(shù)據(jù)類型intnvarcharnvarchar數(shù)據(jù)長(zhǎng)度1010允許 null不允許允許允許備注用戶名登錄密碼圖 3-2 用戶登錄表精選3.2數(shù)據(jù)庫(kù)的完整性和安全性數(shù)據(jù)庫(kù)中關(guān)系模型完整性約束:實(shí)體完整性、參照完整性、和用戶定義完

7、整性。其實(shí)實(shí)體完整性和參照完整性是關(guān)系模型中必須滿足的完整性條件。因此用戶在使用數(shù)據(jù)庫(kù)必須遵 守完整性規(guī)則:實(shí)體完整性規(guī)則、參照完整性規(guī)則、用戶定義完整性規(guī)則。在關(guān)系模型中以 主碼作為唯一標(biāo)識(shí),因此主碼不能為空??偟膩?lái)說(shuō)數(shù)據(jù)庫(kù)完整性是指數(shù)據(jù)的正確性和相容性。 例如本系統(tǒng)中學(xué)生學(xué)號(hào)必須唯一;性別只能是男或女等.數(shù)據(jù)庫(kù)是否具備完整性關(guān)系到數(shù)據(jù) 庫(kù)系統(tǒng)能否真實(shí)地反映現(xiàn)實(shí)世界,因此維護(hù)數(shù)據(jù)庫(kù)的完整性是非常重要的.數(shù)據(jù)庫(kù)的安全性是指保護(hù)數(shù)據(jù)庫(kù)以防止不合法的使用所造成的數(shù)據(jù)泄露,更改,或者破 壞。安全性問(wèn)題不是數(shù)據(jù)庫(kù)系統(tǒng)所獨(dú)有的,所有計(jì)算機(jī)系統(tǒng)都有這個(gè)問(wèn)題,只是在數(shù)據(jù)庫(kù)系統(tǒng) 中大量數(shù)據(jù)集中存放,而且為許多

8、最終用戶直接共享,從而使安全問(wèn)題更為突出,系統(tǒng)安全保 護(hù)措施是否有效是數(shù)據(jù)庫(kù)系統(tǒng)的主要指標(biāo)之一.3.3登錄模板設(shè)計(jì)為了系統(tǒng)的安全,在進(jìn)入系統(tǒng)之前首先會(huì)出現(xiàn)一個(gè)登錄模塊,用戶只有在輸入正確的用戶名和正確的密碼之后,才能進(jìn)入系統(tǒng)。用戶登錄窗體中放置了兩個(gè)文本框(textbox),用來(lái)輸入用戶名和密碼;兩個(gè)按鈕(button) 用來(lái)登錄、取消。截圖 1精選圖 3-3 登錄窗口登錄代碼的關(guān)鍵部分和代碼的簡(jiǎn)單說(shuō)明:private void button1_click(object sender, eventargs e)/構(gòu)造函數(shù),返回值空類型,/調(diào)用 dataaccesslayer 層的 login(

9、)方法,類實(shí)例化sqlhelper sqlhelper = new sqlhelper();int total = sqlhelper.login(textboxusername.text.trim(),textboxpasword.text.trim();/返回一個(gè)整型if (total 0)formmain main = new formmain();main.show();this.hide();精選elsetextboxusername.text = ; textboxpasword.text = ;/用戶名和密碼清空 textboxusername.focus();/光標(biāo)恢復(fù)原位 m

10、essagebox.show(用戶名或密碼錯(cuò)誤, 警告,messageboxbuttons.ok);3.4 formmain 主界面設(shè)計(jì)登陸成功后即可進(jìn)入 formmain 主界面模塊。窗體名稱為學(xué)生信息管理系統(tǒng),有兩大主 要控件:系統(tǒng)、檔案。其中系統(tǒng)中包括注銷,退出按鈕。 點(diǎn)擊注銷按鈕返回到登錄界面,點(diǎn)擊退出按鈕退出學(xué)生管理系統(tǒng);點(diǎn)擊檔案按鈕進(jìn)入到操作指令(錄入學(xué)生信息、刪除學(xué)生信息、查找學(xué)生信息、修改學(xué)生信息)按鈕,點(diǎn)擊一下進(jìn)入到各個(gè)窗口, 使用相應(yīng)的功能。截圖 2精選圖 3-4 學(xué)生信息管理系統(tǒng)圖3-5 學(xué)生信息管理系統(tǒng)設(shè)計(jì) formmain 主界面的關(guān)鍵代碼和代碼的簡(jiǎn)單說(shuō)明:1.pri

11、vate void 注銷 toolstripmenuitem_click(object sender, eventargs e)精選 formlogin login = new formlogin();login.showdialog();/顯示登錄窗口2. private void 退出 toolstripmenuitem_click(object sender, eventargs e) this.close();/退出學(xué)生信息管理系統(tǒng)3. private void 錄入學(xué)生信息 toolstripmenuitem_click(object sender, eventargs e) for

12、maddstudent addstudent = new formaddstudent(); addstudent.showdialog();/顯示錄入學(xué)生信息窗口if (addstudent.dialogresult=dialogresult .ok)/判斷顯示窗口時(shí)用的標(biāo)識(shí)是否與 系統(tǒng)中的一樣bind();/調(diào)用 bind 方法4. bindingsource bs = new bindingsource();/綁定數(shù)據(jù)源這樣的一個(gè)類,進(jìn)行類的實(shí)例 化5. public void bind()/構(gòu)造函數(shù)bs.datasource = new sqlhelper().createtable(

13、);datagridview1.datasource = bs;/通過(guò)數(shù)據(jù)源(datasource)這個(gè)渠道把控件 (datagridview1)與反饋數(shù)據(jù)綁定在一起6. private void 刪除學(xué)生信息 toolstripmenuitem_click(object sender, eventargs e) formdeletestudent delete = new formdeletestudent();delete.showdialog();/刷新網(wǎng)格if ( delete.dialogresult = dialogresult.ok)bind();7. 進(jìn)入查詢窗口的實(shí)現(xiàn)兩句代碼

14、:studentserch search = new studentserch(); search.showdialog();7. studentmodify modify = new studentmodify();modify.showdialog();if (modify.dialogresult = dialogresult.ok)bind();3.5錄入學(xué)生信息模塊設(shè)計(jì)創(chuàng)建一個(gè)新的窗體 form2,將 form2 改名為錄入學(xué)生信息,在該窗體中設(shè)置控件,點(diǎn)擊其中的控件按鈕進(jìn)入相應(yīng)代碼編寫的地方,進(jìn)行代碼的編寫。 截圖 3精選圖 3-6 錄入學(xué)生信息代碼編寫要點(diǎn)和代碼說(shuō)明:1. str

15、ing 學(xué)號(hào)= textboxsno.text.trim();string 姓名= textboxsname.text.trim();string 性別= comboboxsex.text.trim();string 日期= textboxbirthday.text.trim();/定義 4 個(gè)字符串型變量(學(xué)號(hào),姓名,性別,日期),分 別把控件的內(nèi)容賦給他們1. try你的代碼;catch ()檢驗(yàn)并給出提示;3.close();/取消錄入3.6刪除學(xué)生信息模塊設(shè)計(jì)創(chuàng)建一個(gè)新的窗體,將該窗體命名為刪除學(xué)生信息,在該窗體中設(shè)置控件,點(diǎn)擊其中的控件按鈕進(jìn)入相應(yīng)代碼編寫的地方,進(jìn)行代碼的編寫。將各

16、個(gè)控件中屬性名改為易于識(shí)別名 字,這樣在編寫代碼時(shí)不會(huì)被混淆。刪除學(xué)生信息是已知學(xué)號(hào)進(jìn)行刪除的。系統(tǒng)通過(guò)錄入功能錄入了學(xué)生信息,在通過(guò)輸入 學(xué)號(hào)與后臺(tái)數(shù)據(jù)庫(kù)中已存的學(xué)號(hào)進(jìn)行比較,若相等則刪除,否則不刪除并給出相應(yīng)提示。精選截圖 4圖 3-7 刪除學(xué)生信息代碼編寫要點(diǎn)和代碼說(shuō)明:new studentdao().delete(textboxsno.text.trim(); 這 行 代 碼 是 把 輸 入 的 學(xué) 號(hào) (textboxsno 中的內(nèi)容)作為一個(gè)參數(shù)傳到 studentdao 類中 delete 構(gòu)造函數(shù)中,然后與 后臺(tái)中已存在的學(xué)號(hào)進(jìn)行比較。public void delete(s

17、tring sno) string sql = delete from student where sno=sno;/定義一個(gè)字符串變量并賦值 sqlparameter para = new sqlparameter/sqlparameter是系統(tǒng)中的類,屬于不能 繼承的類。值引用是不能夠繼承的。此行是類的實(shí)例化new sqlparameter(sno,sqldbtype.nchar)/ sqldbtype 指定特定的字段和數(shù)據(jù)類 型 ;int i = 0;parai+.value = sno;sqlhelper.executenonquery(sql, para)/傳遞參數(shù)到 sqlhelp

18、er 中,與后臺(tái)已存數(shù)據(jù)進(jìn)行 比較之后做出相應(yīng)的參考。精選3.7查找學(xué)生信息模塊設(shè)計(jì)查找學(xué)生信息是以知道學(xué)生的學(xué)號(hào)為前提,只要后臺(tái)數(shù)據(jù)庫(kù)中已經(jīng)錄入一些學(xué)生的信息,正確輸入學(xué)生學(xué)號(hào)即可查找到要查找的學(xué)生信息。實(shí)現(xiàn)這個(gè)功能,首先要?jiǎng)?chuàng)建一個(gè)窗體, 設(shè)置一些控件。點(diǎn)擊這些控件進(jìn)行代碼的編寫。下面是查找學(xué)生信息模塊的截圖。截圖 5圖 3-8 查詢學(xué)生信息查詢關(guān)鍵代碼的設(shè)計(jì)和簡(jiǎn)單說(shuō)明:點(diǎn)擊確定按鈕進(jìn)入代碼編輯位置,進(jìn)行代碼的編寫。if (textbox1sno.text = )/判斷學(xué)號(hào)輸入處是否為空bind();/調(diào)用構(gòu)造函數(shù)else bs.datasource = new sqlhelper().cr

19、eatetable1(textbox1sno.text.trim(); datagridview2.datasource = bs;/不相等時(shí), 通過(guò)數(shù)據(jù)源(datasource)這個(gè)渠道把控 件(datagridview1)與反饋數(shù)據(jù)綁定在一起,在控件(datagrrridview1)中顯示table表。 private void bind()messagebox.show( 查 詢 失 敗 , 請(qǐng) 重 新 輸 入 !, 提 示);textbox1sno.focus()/光標(biāo)返回到開(kāi)始;return;精選3.8修改學(xué)生信息模塊設(shè)計(jì)用戶錄入學(xué)生信息之后并且發(fā)現(xiàn)錄入有誤,這時(shí)就可以使用修改功能。

20、點(diǎn)擊修改按鈕進(jìn)入修改界面,輸入要修改的學(xué)生的學(xué)號(hào),再修改學(xué)生的其他的信息。點(diǎn)擊確定按鈕,進(jìn)入編輯位置,進(jìn)行代碼的編寫。下面是修改界面的的截圖。 截圖 6圖 3-9 修改學(xué)生信息修改關(guān)鍵代碼的設(shè)計(jì)和簡(jiǎn)單說(shuō)明:點(diǎn) 擊 確 定 按 鈕 進(jìn) 入 編 寫 代 碼 位 置 , 進(jìn) 行 代 碼 編 寫 。( string sno = textboxsno.text.trim();string sname = textboxsname.text.trim();string sex = comboboxsex.text.trim();string sbirthday = textboxsbirthday.tex

21、t.trim();)這幾段 代 碼 是 定 義 字 符 串 變 量 , 將 各 種 控 件 中 的 內(nèi) 容 賦 值 給 變 量 。 這 句 “ new studentdao().modify(sno, sname, sex, sbirthday)”代碼含義是指將參數(shù)傳入到modify 構(gòu)造函數(shù)中,進(jìn)行相應(yīng)的操作。“update student set sname=sname where sno=sno update student set sex=sex” 這串代碼是用于后臺(tái)數(shù)據(jù)庫(kù)的更新,從而實(shí)現(xiàn)系統(tǒng)刪除功能的實(shí)現(xiàn)。精選第四章 系統(tǒng)測(cè)試第四章 系統(tǒng)測(cè)試4.1登錄測(cè)試圖 41 登錄測(cè)試輸入用戶名

22、和密碼,進(jìn)入學(xué)生信息管理系統(tǒng):精選圖 41 登錄測(cè)試4.2 錄入測(cè)試現(xiàn)在系統(tǒng)中有五個(gè)學(xué)生信息,使用錄入功能錄入一個(gè)學(xué)號(hào)為“006號(hào)”的學(xué)生信息,如圖 所示:精選圖 4-2 錄入測(cè)試4.3 刪除測(cè)試上圖已存在六個(gè)學(xué)生的信息,現(xiàn)要?jiǎng)h除學(xué)號(hào)為”002 號(hào)、006 號(hào)“的學(xué)生信息。操作結(jié) 果如圖所示:圖 4-3 刪除測(cè)試4.4 查找測(cè)試查詢學(xué)號(hào)為”001 號(hào)“學(xué)生的信息,查詢結(jié)果如圖所示:精選圖 4-4 查詢學(xué)生信息4.5 修改測(cè)試修改學(xué)號(hào)為”003 號(hào)“的學(xué)生信息。如圖所示:分別將姓名、性別、出生日期中信息 改為“王小寶、女、1990-12-01”。修改后的結(jié)果如圖所示:精選圖 4-5 修改學(xué)生信息

23、第五章設(shè)計(jì)感悟第五章 結(jié)論通過(guò)這段時(shí)間的學(xué)習(xí),讓我對(duì) c#有了新的認(rèn)識(shí)。要想學(xué)好這門語(yǔ)言,需要長(zhǎng)期的知識(shí) 積累和上機(jī)實(shí)踐并且不斷地總結(jié)經(jīng)驗(yàn)。在用 c#開(kāi)發(fā)一個(gè)項(xiàng)目時(shí),遇到自己不能解決的問(wèn)題 可以通過(guò)積極思考、查詢資料、詢問(wèn)老師、同學(xué)這些方式來(lái)解決。這次我設(shè)計(jì)的課題是學(xué)生信息管理系統(tǒng)。在設(shè)計(jì)這個(gè)課題的過(guò)程中,面對(duì)著許多問(wèn)題,, 在本次設(shè)計(jì)過(guò)程中,我是逐步對(duì)每個(gè)模塊進(jìn)行編碼設(shè)計(jì),完成每個(gè)功能。要求在每個(gè)階段結(jié) 束之前通過(guò)人工檢查,完善每個(gè)模塊的功能,盡早發(fā)現(xiàn)錯(cuò)誤并糾正,完成每個(gè)模塊測(cè)試之后 再進(jìn)行系統(tǒng)測(cè)試。精選致謝致謝這次課程設(shè)計(jì)主要感謝我們的指導(dǎo)老師(王磊)。在這個(gè)項(xiàng)目剛剛確定下來(lái),我們一頭 霧

24、水,不知如何開(kāi)發(fā)。因此前期的制作,主要是老師和我們一起開(kāi)發(fā)并且給我們講解。在老 師的引導(dǎo)下,我們逐步完成了整個(gè)項(xiàng)目的研發(fā)。在這里我們感謝指導(dǎo)老師。參考文獻(xiàn)參考文獻(xiàn)1王珊,薩師煊數(shù)據(jù)庫(kù)系統(tǒng)概述,高等教育出版社 2 c#高級(jí)程序設(shè)計(jì),清華大學(xué)出版社精選附錄:程序清單附錄:程序清單/登錄using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.text;using system.windows.forms;u

25、sing dataaccesslayer;namespace studentmispublic partial class formlogin : formpublic formlogin()initializecomponent();private void button1_click(object sender, eventargs e)/調(diào)用 dataaccesslayer 層的 login()方法,sqlhelper sqlhelper = new sqlhelper();int total = sqlhelper.login(textboxusername.text.trim(),t

26、extboxpasword.text.trim();if (total 0)formmain main = new formmain();main.show();this.hide();elsetextboxusername.text = ;textboxpasword.text = ;textboxusername.focus();messagebox.show(用戶名或密碼錯(cuò)誤, 警告, messageboxbuttons.ok);精選private void label2_click(object sender, eventargs e)private void formlogin_lo

27、ad(object sender, eventargs e)private void textboxpasword_textchanged(object sender, eventargs e) /formmain 主界面using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.text;using system.windows.forms;using dataaccesslayer;namespace

28、 studentmispublic partial class formmain : formpublic formmain()initializecomponent();private void 錄入學(xué)生信息 toolstripmenuitem_click(object sender, eventargs e) formaddstudent addstudent = new formaddstudent(); addstudent.showdialog();if (addstudent.dialogresult=dialogresult .ok)bind();bindingsource bs

29、 = new bindingsource();public void bind()bs.datasource = new sqlhelper().createtable(); datagridview1.datasource = bs精選private void formmain_load(object sender, eventargs e)bind();private void 刪除學(xué)生信息 toolstripmenuitem_click(object sender, eventargs e)formdeletestudent delete = new formdeletestudent(

30、);delete.showdialog();/刷新網(wǎng)格if ( delete.dialogresult = dialogresult.ok)bind(); private void datagridview1_cellcontentclick(object sender,datagridviewcelleventargs e) private void 檔案 toolstripmenuitem_click(object sender, eventargs e)private void 查詢學(xué)生信息 toolstripmenuitem_click(object sender, eventargs

31、 e)studentserch search = new studentserch();search.showdialog();private void 修改學(xué)生信息 toolstripmenuitem_click(object sender, eventargs e)studentmodify modify = new studentmodify();modify.showdialog();if (modify.dialogresult = dialogresult.ok)bind()private void 退出 toolstripmenuitem_click(object sender,

32、 eventargs e)application.exit();private void 注銷 toolstripmenuitem_click(object sender, eventargs e)formlogin login = new formlogin();login.showdialog();/錄入using system;using system.collections.generic;using system.componentmodel;精選using system.data;using system.drawing;using system.text;using system

33、.windows.forms;using dataaccesslayer;using system.data.sqlclient;namespace studentmispublic partial class formaddstudent : formpublic formaddstudent()initializecomponent();private void buttonok_click(object sender, eventargs e)string 學(xué)號(hào)= textboxsno.text.trim();string 姓名= textboxsname.text.trim(); st

34、ring 性別= comboboxsex.text.trim();string 日期= textboxbirthday.text.trim();trynew studentdao().insert(學(xué)號(hào), 姓名, 性別, 日期);this.dialogresult = dialogresult.ok;messagebox.show(錄入成功, 提示);catch (sqlexception ex)switch (ex.number)case 2627:messagebox.show( 已經(jīng)存在此學(xué)號(hào)!請(qǐng)檢查。 , 錯(cuò)誤: ,messageboxbuttons.ok, messageboxico

35、n.error);break; default:string info = string.format(訪問(wèn)數(shù)據(jù)庫(kù)出錯(cuò)!n 具體原因?yàn)椋?n錯(cuò)誤代碼:1, ex.message, ex.number);messagebox.show(info);break;return;catch (exception err)精選messagebox.show(err.message, 出 錯(cuò) 了 :, messageboxbuttons.ok,messageboxicon.error);return;private void label1_click(object sender, eventargs e)

36、 private void formaddstudent_load(object sender, eventargs e)private void textboxsno_textchanged(object sender, eventargs e)private void buttoncancel_click(object sender, eventargs e)close();/刪除using system;using system.collections.generic;using system.componentmodel;using system.data;using system.d

37、rawing;using system.text;using system.windows.forms;using dataaccesslayer;using system.data.sqlclient;namespace studentmispublic partial class formdeletestudent : formpublic formdeletestudent()initializecomponent();private void buttonok_click(object sender, eventargs e)new studentdao().delete(textbo

38、xsno.text.trim();this.dialogresult = dialogresult.ok;messagebox.show(刪除成功, 提示);精選private void formdeletestudent_load(object sender, eventargs e) private void textboxsno_textchanged(object sender, eventargs e) private void button2_click(object sender, eventargs e)close();/查找using system;using system.

39、collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.text;using system.windows.forms;using system.data.sqlclient;using dataaccesslayer;namespace studentmispublic partial class studentserch : formpublic studentserch()initializecomponent();private void st

40、dentselect_load(object sender, eventargs e)private void textbox1_textchanged(object sender, eventargs e)bindingsource bs = new bindingsource();private void buttonok_click(object sender, eventargs e) if (textbox1sno.text = )bind();elsebs.datasource = new sqlhelper().createtable1(textbox1sno.text.trim

41、(); datagridview2.datasource = bs;精選private void bind()messagebox.show(查詢失敗,請(qǐng)重新輸入!, 提示); textbox1sno.focus();return;private void textbox1_textchanged_1(object sender, eventargs e)private void buttoncancle_click(object sender, eventargs e)private void textboxsno_textchanged(object sender, eventargs e

42、)private void textboxsname_textchanged(object sender, eventargs e)private void datagridview1_cellcontentclick(objectdatagridviewcelleventargs e)sender,private void button1_click(object sender, eventargs e) close();/修改using system;using system.collections.generic;using system.componentmodel;using sys

43、tem.data;using system.drawing;using system.text;using system.windows.forms;using dataaccesslayer;namespace studentmispublic partial class studentmodify : formpublic studentmodify()initializecomponent();精選private void combobox1_selectedindexchanged(object sender, eventargs e)private void button0k_cli

44、ck(object sender, eventargs e)string sno = textboxsno.text.trim();string sname = textboxsname.text.trim(); string sex = comboboxsex.text.trim();string sbirthday = textboxsbirthday.text.trim();new studentdao().modify(sno, sname, sex, sbirthday); this.dialogresult = dialogresult.ok;messagebox.show(修改成

45、功!, 提示);private void textbox1_textchanged(object sender, eventargs e)private void studentmodify_load(object sender, eventargs e)private void textboxsname_textchanged(object sender, eventargs e) private void textboxsbirthday_textchanged(object sender, eventargs e) private void buttoncancle_click(obje

46、ct sender, eventargs e)close();/sqlhelper/*/using system;using system.collections.generic;using system.text;using system.collections;using system.data;using system.data.sqlclient;namespace dataaccesslayerpublic class sqlhelper精選public int login(string 用戶名, string 密碼)/負(fù)責(zé)登陸數(shù)據(jù)庫(kù)的方法string connstr = serve

47、r=.;database=student;integrated security=sspi;using (sqlconnection conn = new sqlconnection(connstr)conn.open();using (sqlcommand cmd = conn.createcommand()cmd.commandtext = select count(*) from tlogin where username=unand password=pwd;cmd.parameters.add(new sqlparameter(un, 用戶名); cmd.parameters.add

48、(new sqlparameter(pwd, 密碼);int total = convert.toint32(cmd.executescalar(); /返回值類型不確定,是一個(gè) objectreturn total;public void executenonquery(string sql, params sqlparameter para)string connstr = server= . ;database=student;integrated security=sspi;using (sqlconnection conn = new sqlconnection(connstr)co

49、nn.open();using (sqlcommand cmd = new sqlcommand(sql, conn)cmd.parameters.addrange(para);cmd.executenonquery();public datatable createtable()datatable table = new datatable();string connstr = server= . ;database=student;integrated security=sspi;using (sqlconnection conn = new sqlconnection(connstr)c

50、onn.open();精選string sql = select * from student;using (sqldataadapter adapter = new sqldataadapter(sql, conn)adapter.fill(table);return table;public datatable createtable1(string 學(xué)號(hào))datatable table = new datatable();string connstr = server= . ;database=student;integrated security=sspi;using (sqlconnection conn = new sqlconnection(connstr)conn.open();using (sqlcommand cmd = conn.createcommand()cmd.commandtext = select sno 學(xué) 號(hào) ,sname 姓 名 ,sex 性別,bi

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論