![學(xué)生課程管理系統(tǒng)_第1頁(yè)](http://file4.renrendoc.com/view/d1b15bd64283a8bacd6d80d6039c151c/d1b15bd64283a8bacd6d80d6039c151c1.gif)
![學(xué)生課程管理系統(tǒng)_第2頁(yè)](http://file4.renrendoc.com/view/d1b15bd64283a8bacd6d80d6039c151c/d1b15bd64283a8bacd6d80d6039c151c2.gif)
![學(xué)生課程管理系統(tǒng)_第3頁(yè)](http://file4.renrendoc.com/view/d1b15bd64283a8bacd6d80d6039c151c/d1b15bd64283a8bacd6d80d6039c151c3.gif)
![學(xué)生課程管理系統(tǒng)_第4頁(yè)](http://file4.renrendoc.com/view/d1b15bd64283a8bacd6d80d6039c151c/d1b15bd64283a8bacd6d80d6039c151c4.gif)
![學(xué)生課程管理系統(tǒng)_第5頁(yè)](http://file4.renrendoc.com/view/d1b15bd64283a8bacd6d80d6039c151c/d1b15bd64283a8bacd6d80d6039c151c5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、ASP.NET程序設(shè)計(jì)教程第12章 程序設(shè)計(jì)實(shí)例上海交通大學(xué)出版社1內(nèi)容提要本章介紹一個(gè)學(xué)生課程管理系統(tǒng),目標(biāo)是提高學(xué)生選課和成績(jī)管理工作的效率,圍繞此管理所需要的學(xué)生個(gè)人信息、課程和任課教師信息、所選課程信息進(jìn)行管理及維護(hù)。學(xué)生可以通過此系統(tǒng)進(jìn)行個(gè)人信息、考試成績(jī)查詢以及完成選課功能。系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)學(xué)生選課和成績(jī)管理的系統(tǒng)化、規(guī)范化 212.1 系統(tǒng)總體設(shè)計(jì) 12.1.1 系統(tǒng)功能描述學(xué)生課程管理系統(tǒng)的功能包括: 管理員的操作功能 學(xué)生的操作功能312.1.1 系統(tǒng)功能描述管理員的操作功能。管理員權(quán)限最大,可以對(duì)學(xué)生、班級(jí)、課程等情況進(jìn)行統(tǒng)一的管理,細(xì)分如下:學(xué)生信息的瀏覽;學(xué)生信
2、息的添加;學(xué)生信息的修改、刪除。(2) 班級(jí)管理信息的瀏覽;班級(jí)管理信息的添加;班級(jí)管理信息的修改、刪除。(3) 教師信息的添加;教師權(quán)限的修改;管理員可將教師的權(quán)限設(shè)為管理員。(4) 學(xué)?;菊n程的瀏覽;學(xué)?;菊n程的添加;學(xué)?;菊n程修改、刪除。4(5) 學(xué)校對(duì)所設(shè)課程進(jìn)行教師分配。(6) 學(xué)生成績(jī)信息的瀏覽與統(tǒng)計(jì),可按成績(jī)具體范圍(如系、班級(jí)等)、課號(hào)、年度、統(tǒng)計(jì)內(nèi)容方面對(duì)成績(jī)進(jìn)行統(tǒng)計(jì);學(xué)生成績(jī)信息的添加;學(xué)生成績(jī)信息的修改、刪除。(7) 學(xué)生選課信息的管理,包括修改與刪除;學(xué)生選課人數(shù)的統(tǒng)計(jì)。(8) 為了保證系統(tǒng)的安全性,除了管理員用戶,不允許其他用戶進(jìn)入該模塊。12.1.1 系統(tǒng)功能
3、描述5學(xué)生的操作功能。學(xué)生只是利用此系統(tǒng)進(jìn)行與自己有關(guān)的信息查詢、輸入等,不能操作和修改其他信息,學(xué)生所具有的操作功能如下:瀏覽個(gè)人基本信息;學(xué)生登錄系統(tǒng)后,修改個(gè)人信息,為了保證系統(tǒng)的安全性,學(xué)生只能修改個(gè)人密碼;瀏覽課程信息,進(jìn)行選課等。(2) 學(xué)生利用此系統(tǒng)選修課程,在選課過程中,學(xué)生可查詢待選課程的基本信息及教師情況,并可瀏覽截止當(dāng)前選此課的人數(shù);瀏覽個(gè)人的選課情況;瀏覽個(gè)人成績(jī)信息。 12.1.1 系統(tǒng)功能描述612.1.2 系統(tǒng)性能 一般的性能需求是指相互消息傳遞順利,協(xié)議分析正確,界面友好,運(yùn)行時(shí)間滿足使用需要,安全性得到完全保證。就實(shí)際情況,在高系統(tǒng)配置、高網(wǎng)絡(luò)帶寬很容易得到保
4、證的情況下,我們最需要考慮的性能需求就是系統(tǒng)安全性問題。要限定相應(yīng)的目錄訪問,如其他用戶不能隨意訪問管理員目錄。進(jìn)行了認(rèn)證與授權(quán)。尤其要注意認(rèn)證,在此使用forms驗(yàn)證,簡(jiǎn)單地說就是確定誰是特定用戶,并針對(duì)安全性驗(yàn)證該用戶的身份。在識(shí)別用戶之后,就要利用一種方法向用戶授權(quán),從而能夠使用系統(tǒng)的特定功能。也就是說,需要一種方法來決定允許特定用戶進(jìn)行什么樣的操作。在配置文件Web.config中進(jìn)行了相關(guān)的設(shè)置。712.2 系統(tǒng)功能模塊分析 學(xué)生課程管理系統(tǒng)的主要功能包括: 用戶(管理員)的管理,含學(xué)生、教師、課程、班級(jí)、選課、成績(jī)等有關(guān)信息的管理 學(xué)生對(duì)個(gè)人信息的管理等功能,含修改密碼、課程信息、
5、選課操作、所選課程、成績(jī)查詢等功能8系統(tǒng)模塊圖 學(xué)生課程管理系統(tǒng)功能結(jié)構(gòu)圖設(shè)計(jì)如圖所示12.2 系統(tǒng)功能模塊分析 912.2.1 用戶(管理員)管理模塊 該模塊主要由6個(gè)子模塊構(gòu)成,主要負(fù)責(zé)管理員、教師以及學(xué)生信息等相關(guān)的管理功能 學(xué)生管理子模塊 教師管理子模塊 課程管理模塊 班級(jí)管理模塊 選課管理模塊 成績(jī)管理模塊 管理員與教師管理子模塊1012.2.2 學(xué)生操作模塊 學(xué)生只能進(jìn)入此模塊,該模塊主要有5個(gè)方面的功能??刹僮饔嘘P(guān)個(gè)人的信息,如: 修改個(gè)人的登錄密碼 瀏覽相關(guān)的課程信息 進(jìn)行選課操作 查看自己已經(jīng)選修的課程 查詢自己的成績(jī)1112.3 數(shù)據(jù)庫(kù)設(shè)計(jì)和建立 用戶信息主要有用戶登錄號(hào)、
6、用戶密碼、用戶權(quán)限代碼,讀者可根據(jù)自己的具體需要添加字段,表12.1顯示了表中各個(gè)字段的數(shù)據(jù)類型、大小以及簡(jiǎn)短描述列 名數(shù)據(jù)類型寬度字 段 描 述User_idVarchar 20用戶名,設(shè)為主鍵User_PasswordVarchar 20用戶登錄本系統(tǒng)時(shí)的用戶密碼User_PowerInt 4用戶的類型,0為本校注冊(cè)學(xué)生,1為管理員表12.1 用戶信息數(shù)據(jù)表(Users) 12在系統(tǒng)中,最重要的對(duì)象是學(xué)生,系統(tǒng)設(shè)計(jì)了學(xué)生信息數(shù)據(jù)表(student),用于存儲(chǔ)本校所有學(xué)生信息,其中包括在校生,也包括已畢業(yè)學(xué)生。表12.2中顯示了表中各個(gè)字段的數(shù)據(jù)類型、大小以及簡(jiǎn)短描述 列 名數(shù)據(jù)類型寬度字
7、段 描 述 Student_id Varchar 20 學(xué)生的學(xué)號(hào),設(shè)為主鍵 Student_name Varchar 20 學(xué)生姓名 Student_sex Char 4 學(xué)生性別 Student_nation Char 4 學(xué)生民族表12.2 學(xué)生信息數(shù)據(jù)表(Student) 12.3 數(shù)據(jù)庫(kù)設(shè)計(jì)和建立 13列 名數(shù)據(jù)類型寬度字 段 描 述Student_birthday Datetime 8 學(xué)生出生日期 Student_time Datetime 8 學(xué)生入學(xué)時(shí)間 Student_classid Varchar 50 學(xué)生所在班級(jí)號(hào) Student_home Varchar 50 學(xué)生
8、家庭所在地 Student_else Varchar 50 備注表12.2 學(xué)生信息數(shù)據(jù)表(Student) 12.3 數(shù)據(jù)庫(kù)設(shè)計(jì)和建立 14學(xué)生所在班級(jí)信息相對(duì)獨(dú)立,系統(tǒng)用班級(jí)信息數(shù)據(jù)表(class)記錄本學(xué)校所有班級(jí)信息。表12.3中顯示了表中各個(gè)字段的數(shù)據(jù)類型、大小以及簡(jiǎn)短描述 列 名數(shù)據(jù)類型寬度字 段 描 述 Class_id Varchar 20 班級(jí)號(hào),設(shè)為主鍵 Class_name Varchar 50 班級(jí)全稱Class_departmemt Varchar 50 班級(jí)所在系別 Class_college Varchar 50 記錄班級(jí)所在學(xué)院 Class_teacherid
9、Varchar 20 記錄本班級(jí)班主任號(hào)表12.3 班級(jí)信息數(shù)據(jù)表(Class)12.3 數(shù)據(jù)庫(kù)設(shè)計(jì)和建立 15系統(tǒng)構(gòu)建教師信息數(shù)據(jù)表(teacher)用來存儲(chǔ)本校所有教師信息,教師信息表給出一個(gè)較為簡(jiǎn)單的結(jié)構(gòu)。表12.4顯示了表中各個(gè)字段的數(shù)據(jù)類型、大小以及簡(jiǎn)短描述 列 名數(shù)據(jù)類型寬度字 段 描 述 Teacher_id Varchar50 記錄教師號(hào),設(shè)為主鍵 Teacher_name Varchar50 記錄教師姓名 Teacher_college Varchar50 記錄教師所在系表12.4 教師信息數(shù)據(jù)表(teacher)12.3 數(shù)據(jù)庫(kù)設(shè)計(jì)和建立 16每一個(gè)教師講授什么課程都有記錄
10、,而且一門課可能會(huì)有多個(gè)老師授課。因此必須包括課程名稱、年度、學(xué)期、班級(jí)號(hào)等,以便管理員或?qū)W生查詢信息,系統(tǒng)采用教師課程記錄數(shù)據(jù)表(teacher_course)記錄以上信息。如表12.5所示表中各個(gè)字段的數(shù)據(jù)類型、大小以及簡(jiǎn)短描述 12.3 數(shù)據(jù)庫(kù)設(shè)計(jì)和建立 17列 名數(shù)據(jù)類型寬度字 段 描 述ID Int 4教師-課程記錄的唯一ID號(hào),設(shè)為主鍵Teacher id Varchar 50 教師號(hào)Course id Varchar 50 教師所任課程號(hào)Class id Varchar 50 教師所教班級(jí)號(hào)Course_year Char 5 年度學(xué)期Course_men Int 4 教師所任選
11、修課程限報(bào)人數(shù)表12.5 教師課程記錄數(shù)據(jù)表(teacher_course)12.3 數(shù)據(jù)庫(kù)設(shè)計(jì)和建立 18學(xué)生總是離不開課程,系統(tǒng)設(shè)計(jì)了課程信息數(shù)據(jù)表(course),用于存儲(chǔ)本校所有課程信息,其中包括課程類型、學(xué)分等。表12.6顯示了表中各個(gè)字段的數(shù)據(jù)類型、大小以及簡(jiǎn)短描述。 12.3 數(shù)據(jù)庫(kù)設(shè)計(jì)和建立 19列 名數(shù)據(jù)類型寬度字 段 描 述Course_idVarchar50課程號(hào),設(shè)為主鍵Course_nameVarchar50課程名Course_periodInt4課程學(xué)時(shí)Class_creditInt4課程學(xué)分Course_kindLm4課程類型,0為公共課,1為專業(yè)課,2為選修課C
12、ourse_describeVarchar50課程具體描述表12.6 課程信息數(shù)據(jù)表(teacher_course)12.3 數(shù)據(jù)庫(kù)設(shè)計(jì)和建立 20學(xué)生所學(xué)課程都會(huì)有成績(jī),并且每個(gè)學(xué)生每一門課只有一個(gè)成績(jī)。系統(tǒng)設(shè)計(jì)了學(xué)生課程信息數(shù)據(jù)表(studentcourse),用于存儲(chǔ)本校所有學(xué)生所學(xué)課程信息,表12.7顯示了表中各個(gè)字段的數(shù)據(jù)類型、大小以及簡(jiǎn)短描述。 12.3 數(shù)據(jù)庫(kù)設(shè)計(jì)和建立 21列 名數(shù)據(jù)類型寬度字 段 描 述IDBigInt 8學(xué)生-課程記錄的惟一ID號(hào),設(shè)為主鍵Studen_id Varchar 50學(xué)生學(xué)號(hào)Course_id Varchar 50學(xué)生所學(xué)課程號(hào)Stude_rad
13、e Int 4學(xué)生成績(jī)Course_year Char 5年度學(xué)期表12.7 學(xué)生課程記錄數(shù)據(jù)表(student_course)12.3 數(shù)據(jù)庫(kù)設(shè)計(jì)和建立 22系統(tǒng)使用Microsoft SQL Server 2000建立數(shù)據(jù)庫(kù),庫(kù)名為S_Class。庫(kù)中設(shè)計(jì)的七個(gè)表及表間相關(guān)關(guān)系如圖12.2所示。 12.3 數(shù)據(jù)庫(kù)設(shè)計(jì)和建立 2312.3 數(shù)據(jù)庫(kù)設(shè)計(jì)和建立 構(gòu)建了數(shù)據(jù)庫(kù)的表結(jié)構(gòu)后,接下來創(chuàng)建負(fù)責(zé)表中信息選擇、添加、更新以及刪除的相關(guān)存儲(chǔ)過程。系統(tǒng)使用了幾個(gè)存儲(chǔ)過程。具體操作: select_student_1存儲(chǔ)過程 Insert_student_1存儲(chǔ)過程24select_student_
14、1存儲(chǔ)過程以下代碼表示了這一存儲(chǔ)過程: CREATE PROCEDURE select_student_l (Student_id varchar(50) ) AS select * from student where Student_id=Student_id25Insert_student_1存儲(chǔ)過程以下代碼表示了這一存儲(chǔ)過程: CREATE PROCEDURE insert_student_l (Student_id varchar(50), Student_name varchar(50), Student_sex char(5), Student_nation char(5), S
15、tudent_birthday datetime, StudenLtime datetime, Student classid varchar(50), Student_home varchar(50), Student_else varchar(50)26Insert_student_1存儲(chǔ)過程 AS INSERT INTO Student_Class.dbo.student ( Student_id, Student_name, Student_sex, Student_nation, Student_birthday, Student_time, Student_classid, Stu
16、dent_home, Student_else)27Insert_student_1存儲(chǔ)過程 VALUES ( Student id, Student_name, Student_sex, Student_nation, Student_birthday, Student_time, Student_classid, Student_home, Student_else)2812.4 系統(tǒng)配置 12.4.1 連接數(shù)據(jù)庫(kù) 對(duì)于數(shù)據(jù)庫(kù)調(diào)用字符串,由于數(shù)據(jù)庫(kù)使用的是本地?cái)?shù)據(jù)庫(kù),Data Source(數(shù)據(jù)源)設(shè)置為(local);UID(用戶ID)賦值為系統(tǒng)默認(rèn)的sa:PWD(連接密碼)賦值為空;D
17、ATABASE(數(shù)據(jù)庫(kù)名稱)設(shè)為我們上一節(jié)中創(chuàng)建的S_Class。Web.Config配置文檔的相關(guān)主要代碼如下: 2912.4.2 設(shè)置用戶驗(yàn)證和授權(quán) 先在Web.Config中設(shè)置用戶名和密碼,代碼清單如下: 3012.4.2 設(shè)置用戶驗(yàn)證和授權(quán) 然后設(shè)置目錄manager的訪問權(quán)限。 3112.5 主要界面及相關(guān)代碼分析 12.5.1 學(xué)生課程管理系統(tǒng)首頁(yè) 學(xué)生課程管理系統(tǒng)首頁(yè)如圖12.3所示 圖12.3 學(xué)生課程管理系統(tǒng)首頁(yè) 3212.5.1 學(xué)生課程管理系統(tǒng)首頁(yè) /程序清單12-1 private void Btn_enter_Click(object sender, System.
18、EventArgs e) /從文件web.config中讀取連接字符串,并連接本地計(jì)算機(jī)的S_Class數(shù)據(jù)庫(kù) String str_id= Tbx_userid.Text; string strconn= ConfigurationSettings.AppSettingsdsn; SqlConnection cn=new SqlConnection(strconn); cn.Open( ); /打開連接3312.5.1 學(xué)生課程管理系統(tǒng)首頁(yè) /構(gòu)造SQL語句,檢驗(yàn)用戶名和密碼是否正確 string strsql=select * from users where User_id=+Tbx_u
19、serid.Text+and User_password=+Tbx_userpwd.Text+; SqlCommand cm=new SqlCommand(strsql,cn); SqlDataReader dr=cm.ExecuteReader( ); /先檢查輸入的用戶名和密碼是否在配置文件web.config中, if(System.Web.Security.FormsAuthentication.Authenticate (this.Tbx_userid.Text,this.Tbx_userpwd.Text)34 /用戶名和密碼若在配置文件web.config中,則進(jìn)入管理員模塊。Sy
20、stem.Web.Security.FormsAuthentication.RedirectFromLoginPage (this.Tbx_userid.Text,false); Response.Redirect(manager/student.aspx); /否則,看是否在數(shù)據(jù)庫(kù)表中,若在表中,進(jìn)入學(xué)生 else if(dr.Read( ) /保存當(dāng)前用戶名到Session。 SessionUser_id=drUser_id; Sessionuser_power=drUser_power;12.5.1 學(xué)生課程管理系統(tǒng)首頁(yè) 3512.5.1 學(xué)生課程管理系統(tǒng)首頁(yè) if(int)Sessio
21、nUser_power=0) /進(jìn)入學(xué)生操作頁(yè)面 Response.Redirect(query.aspx); else Lbl_note.Text=對(duì)不起,登陸失?。? cn.Close( ); /關(guān)閉連接 3612.5.2 管理員操作模塊 學(xué)生信息管理頁(yè)面學(xué)生信息維護(hù)頁(yè)面窗體如圖12.4所示,其所屬的學(xué)生信息維護(hù)模塊是學(xué)生課程管理系統(tǒng)中管理學(xué)生學(xué)籍的部分 圖12.4 學(xué)生信息維護(hù)頁(yè)面 37 學(xué)生信息管理頁(yè)面學(xué)生信息維護(hù)頁(yè)面的后臺(tái)支持類(student.aspx.cs)主要代碼如下:/程序清單12-2 namespace Student_Class / / student 的摘要說明。 /
22、public class student : System.Web.UI.Page SqlConnection cn; string strsql; private void Page_Load(object sender, System.EventArgs e) 38 / 在此處放置用戶代碼以初始化頁(yè)面 string strconn= ConfigurationSettings.AppSettingsdsn; cn=new SqlConnection(strconn); if(!IsPostBack) Bindgrid( ); private void Btn_search_Click(ob
23、ject sender, System.EventArgs e) Pnl_sort.Visible=true; private void Btn_all_Click(object sender, System.EventArgs e) 學(xué)生信息管理頁(yè)面39 Pnl_sort.Visible=false; Bindgrid( ); public void DataGrid_Page(object sender,DataGridPageChangedEventArgs e) Dgd_student.CurrentPageIndex=e.NewPageIndex; Bindgrid( ); publ
24、ic void DataGrid_cancel(object sender,DataGridCommandEventArgs e) Dgd_student.EditItemIndex=-1; 學(xué)生信息管理頁(yè)面40Bindgrid( ); public void DataGrid_edit(object sender,DataGridCommandEventArgs e) Dgd_student.EditItemIndex=(int)e.Item.ItemIndex; Bindgrid( ); public void DataGrid_update(object sender,DataGridC
25、ommandEventArgs e) string strsql=update student set Student_name=Student_name, 學(xué)生信息管理頁(yè)面41Student_sex=Student_sex,Student_nation=Student_nation,Student_birthday=Student_birthday,Student_time=Student_time,Student_classid=Student_classid,Student_home=Student_home, Student_else=Student_else where Studen
26、t_id=Student_id; SqlCommand cm=new SqlCommand(strsql,cn); try cm.Parameters.Add(new SqlParameter (Student_name,SqlDbType.VarChar,50); 學(xué)生信息管理頁(yè)面42cm.Parameters.Add(new SqlParameter(Student_sex,SqlDbType.Char,10); cm.Parameters.Add(new SqlParameter (Student_nation,SqlDbType.Char,10); cm.Parameters.Add(
27、new SqlParameter (Student_birthday,SqlDbType.DateTime,8); cm.Parameters.Add(new SqlParameter (Student_time,SqlDbType.DateTime,8); cm.Parameters.Add(new SqlParameter (Student_classid,SqlDbType.VarChar,50); cm.Parameters.Add(new SqlParameter (Student_home,SqlDbType.VarChar,50); 學(xué)生信息管理頁(yè)面43 cm.Parameter
28、s.Add(new SqlParameter (Student_else,SqlDbType.VarChar,50); cm.Parameters.Add(new SqlParameter (Student_id,SqlDbType.VarChar,50); string colvalue=(TextBox)e.Item.Cells1.Controls0).Text; cm.ParametersStudent_name.Value=colvalue; colvalue=(TextBox)e.Item.Cells2.Controls0).Text; cm.ParametersStudent_se
29、x.Value=colvalue; colvalue=(TextBox)e.Item.Cells3.Controls0).Text; cm.ParametersStudent_nation.Value=colvalue; colvalue=(TextBox)e.Item.Cells4.Controls0).Text; 學(xué)生信息管理頁(yè)面44 cm.ParametersStudent_birthday.Value=colvalue; colvalue=(TextBox)e.Item.Cells5.Controls0).Text; cm.ParametersStudent_time.Value=co
30、lvalue; colvalue=(TextBox)e.Item.Cells6.Controls0).Text; cm.ParametersStudent_classid.Value=colvalue; colvalue=(TextBox)e.Item.Cells7.Controls0).Text; cm.ParametersStudent_home.Value=colvalue; colvalue=(TextBox)e.Item.Cells8.Controls0).Text; cm.ParametersStudent_else.Value=colvalue; cm.ParametersStu
31、dent_id.Value= Dgd_student.DataKeys (int)e.Item.ItemIndex; 學(xué)生信息管理頁(yè)面45 cm.Connection.Open( ); cm.ExecuteNonQuery( ); Lbl_note.Text=編輯成功; Dgd_student.EditItemIndex=-1; catch Lbl_note.Text=編輯失敗,請(qǐng)檢查輸入!; Lbl_note.Stylecolor=red; cm.Connection.Close( ); Bindgrid( ); 學(xué)生信息管理頁(yè)面46 public void DataGrid_delete(
32、object sender,DataGridCommandEventArgs e) string strsql=delete from student where Student_id=userid; SqlCommand cm=new SqlCommand(strsql,cn); cm.Parameters.Add(new SqlParameter(userid,SqlDbType.VarChar,50); cm.Parametersuserid.Value= Dgd_student.DataKeys(int)e.Item.ItemIndex; cm.Connection.Open( );
33、try 學(xué)生信息管理頁(yè)面47cm.ExecuteNonQuery( ); Lbl_note.Text=刪除成功; catch(SqlException) Lbl_note.Text=刪除失敗; Lbl_note.Stylecolor=red; cm.Connection.Close( ); Bindgrid( ); public void Bindgrid( ) strsql=select * from student; 學(xué)生信息管理頁(yè)面48 SqlDataAdapter da=new SqlDataAdapter(strsql,cn); DataSet ds=new DataSet( );
34、da.Fill(ds); Dgd_student.DataSource=ds; Dgd_student.DataBind( ); private void Btn_ok_Click(object sender, System.EventArgs e) strsql=select * from student where Student_id=+Tbx_sortid.Text+or Student_name=+Tbx_name.Text+; SqlDataAdapter da=new SqlDataAdapter(strsql,cn); 學(xué)生信息管理頁(yè)面49DataSet ds=new Data
35、Set( ); da.Fill(ds); Dgd_student.DataSource=ds; Dgd_student.DataBind( ); private void Lbtn_course_Click(object sender, System.EventArgs e) Response.Redirect(course.aspx); 學(xué)生信息管理頁(yè)面50 課程信息管理主頁(yè)面 課程信息管理頁(yè)面窗體如圖12.5所示,它和學(xué)生信息維護(hù)頁(yè)面非常相似 圖12.5 課程信息管理頁(yè)面 51 課程信息管理主頁(yè)面 課程信息管理頁(yè)的后臺(tái)支持類(course.aspx.cs)的主要代碼:/程序清單12-3 n
36、amespace Student_Class public class course : System.Web.UI.Page SqlConnection cn; string strsql; private void Page_Load(object sender, System.EventArgs e) / 在此處放置用戶代碼以初始化頁(yè)面 string strconn= ConfigurationSettings.AppSettingsdsn;52 課程信息管理主頁(yè)面 cn=new SqlConnection(strconn); if(!IsPostBack) Bindgrid( ); p
37、ublic void DataGrid_Page(object sender,DataGridPageChangedEventArgs e) Dgd_course.CurrentPageIndex=e.NewPageIndex; Bindgrid( ); public void DataGrid_edit(object sender,DataGridCommandEventArgs e) 53 課程信息管理主頁(yè)面 Dgd_course.EditItemIndex=(int)e.Item.ItemIndex; Bindgrid( ); public void DataGrid_cancel(ob
38、ject sender,DataGridCommandEventArgs e) Dgd_course.EditItemIndex=-1; Bindgrid( ); public void DataGrid_delete(object sender,DataGridCommandEventArgs e) /5154 課程信息管理主頁(yè)面 string strsql=delete from course where Course_id=course_id; SqlCommand cm=new SqlCommand(strsql,cn); cm.Parameters.Add(new SqlParame
39、ter(course_id,SqlDbType.VarChar,50); cm.Parameterscourse_id.Value=Dgd_course.DataKeys (int)e.Item.ItemIndex;/51 cm.Connection.Open( ); try 55 課程信息管理主頁(yè)面 cm.ExecuteNonQuery( ); Lbl_note.Text=刪除成功; catch(SqlException) Lbl_note.Text=刪除失敗; Lbl_note.Stylecolor=red; cm.Connection.Close( ); Bindgrid( ); 56
40、課程信息管理主頁(yè)面 public void DataGrid_update(object sender,DataGridCommandEventArgs e) string strsql=update course set Course_name=Course_name, Course_period=Course_period,Course_credit=Course_credit, Course_kind=Course_kind where Course_id=Course_id; SqlCommand cm=new SqlCommand(strsql,cn); cm.Parameters.
41、Add(new SqlParameter (Course_name,SqlDbType.VarChar,50);57 課程信息管理主頁(yè)面 cm.Parameters.Add(new SqlParameter(Course_period,SqlDbType.Int,4); cm.Parameters.Add(new SqlParameter(Course_credit,SqlDbType.Int,4); cm.Parameters.Add(new SqlParameter(Course_kind,SqlDbType.Int,4); cm.Parameters.Add(new SqlParamet
42、er(Course_id,SqlDbType.VarChar,50); string colvalue=(TextBox)e.Item.Cells1.Controls0).Text; cm.ParametersCourse_name.Value=colvalue;colvalue=(TextBox)e.Item.Cells2.Controls0).Text;58 課程信息管理主頁(yè)面 cm.ParametersCourse_period.Value=colvalue; colvalue=(TextBox)e.Item.Cells3.Controls0).Text; cm.ParametersCo
43、urse_credit.Value=colvalue; colvalue=(TextBox)e.Item.Cells4.Controls0).Text; cm.ParametersCourse_kind.Value=colvalue; cm.ParametersCourse_id.Value= Dgd_course.DataKeys(int)e.Item.ItemIndex; cm.Connection.Open( ); try cm.ExecuteNonQuery( ); Lbl_note.Text=編輯成功;59 課程信息管理主頁(yè)面 Dgd_course.EditItemIndex=-1;
44、 catch(SqlException) Lbl_note.Text=編輯失敗; Lbl_note.Stylecolor=red; cm.Connection.Close( ); Bindgrid( ); public void Bindgrid( ) strsql=select * from course;60 課程信息管理主頁(yè)面 SqlDataAdapter da=new SqlDataAdapter(strsql,cn); DataSet ds=new DataSet( ); da.Fill(ds); Dgd_course.DataSource=ds; Dgd_course.DataBi
45、nd( ); private void Btn_search_Click(object sender, System.EventArgs e) strsql=select * from course where Course_id=+Tbx_id.Text+or Course_name=+Tbx_name.Text+;61 課程信息管理主頁(yè)面 SqlDataAdapter da=new SqlDataAdapter(strsql,cn); DataSet ds=new DataSet( ); da.Fill(ds); Dgd_course.DataSource=ds; Dgd_course.D
46、ataBind( ); 62 成績(jī)信息管理頁(yè)面 成績(jī)管理頁(yè)面窗體如圖12.6所示,該頁(yè)面完成的功能較多,包括按選定的條件進(jìn)行限定條件的成績(jī)查詢 圖12.6 成績(jī)管理頁(yè)面63 成績(jī)信息管理頁(yè)面 成績(jī)管理頁(yè)面的后臺(tái)支持類(grade_manage.aspx.cs)的統(tǒng)計(jì)內(nèi)容的主要相關(guān)代碼,讀者可以重點(diǎn)參見SQL語句來理解。/程序清單12-4 namespace Student_Class public class grade_manage : System.Web.UI.Page SqlConnection cn; string strsql; private void Page_Load(obj
47、ect sender, System.EventArgs e) 64 成績(jī)信息管理頁(yè)面 / 在此處放置用戶代碼以初始化頁(yè)面 string strconn= ConfigurationSettings.AppSettingsdsn; cn=new SqlConnection(strconn); public void DataGrid_Page(object sender,DataGridPageChangedEventArgs e) Dgd_grade.CurrentPageIndex=e.NewPageIndex; Bindgrid( ); private void Btn_count_Cl
48、ick(object sender, System.EventArgs e) 65 成績(jī)信息管理頁(yè)面 if(Ddl_stat.SelectedItem.Value=系別) if(Ddl_content.SelectedItem.Text=總?cè)藬?shù)) strsql=select AVG(Student_grade),MAX(Student_grade),COUNT(*) from student_course,student,class where Course_id=+Tbx_classid.Text+ and student_course.Course_year=+Tbx_year.Text+
49、and student_course. Student_id=student.Student_id and student.Student_classid=class.Class_id and class.Class_department=+Tbx_area.Text+ ; 66 成績(jī)信息管理頁(yè)面 else if(Ddl_content.SelectedItem.Text=優(yōu)秀人數(shù)) strsql=select AVG(Student_grade),MAX(Student_grade),COUNT(*) from student_course,student,class where Cours
50、e_id=+Tbx_classid.Text+ and student_course.Course_year=+Tbx_year.Text+and student_course. Student_id=student.Student_id and student.Student_classid=class.Class_id and class.Class_department=+Tbx_area.Text+and Student_grade=85; 67 成績(jī)信息管理頁(yè)面 else if(Ddl_content.SelectedItem.Text=不及格人數(shù)) strsql=select AV
51、G(Student_grade),MAX(Student_grade),COUNT(*) from student_course,student,class where Course_id=+Tbx_classid.Text+ and student_course.Course_year=+Tbx_year.Text+and student_course. Student_id=student.Student_id and student.Student_classid=class.Class_id and class.Class_department=+Tbx_area.Text+and S
52、tudent_grade=85 ; 71 成績(jī)信息管理頁(yè)面 else if(Ddl_content.SelectedItem.Text=不及格人數(shù)) strsql=select AVG(Student_grade),MAX(Student_grade),COUNT(*) from student_course,student,class where Course_id=+Tbx_classid.Text+ and student_course.Course_year=+Tbx_year.Text+and student_course. Student_id=student.Student_id
53、 and student.Student_classid=class.Class_id and class.Class_college=+Tbx_area.Text+and Student_grade=85; 75 成績(jī)信息管理頁(yè)面 else if(Ddl_content.SelectedItem.Text=不及格人數(shù)) strsql=select AVG(Student_grade),MAX(Student_grade),COUNT(*) from student_course,student where Course_id=+Tbx_classid.Text+ and student_co
54、urse.Course_year=+Tbx_year.Text+ and student_course. Student_id=student.Student_id and student.Student_classid= +Tbx_area.Text+and Student_grade60; 76 成績(jī)信息管理頁(yè)面 else strsql=select AVG(Student_grade),MAX(Student_grade) from student_course,student where Course_id=+Tbx_classid.Text+ and student_course.C
55、ourse_year=+Tbx_year.Text+ and student_course. Student_id=student.Student_id and student.Student_classid= +Tbx_area.Text+; 77 成績(jī)信息管理頁(yè)面 SqlCommand cm=new SqlCommand(strsql,cn); cn.Open( ); SqlDataReader dr=cm.ExecuteReader( ); if(dr.Read( ) if(Ddl_content.SelectedItem.Text=均分) Lbl_average.Visible=tru
56、e; Lbl_average.Text=平均分為:+dr0.ToString( ); else if(Ddl_content.SelectedItem.Text=最高分) 78 成績(jī)信息管理頁(yè)面 Lbl_high.Visible=true; Lbl_high.Text=最高分為:+dr1.ToString( ); else if(Ddl_content.SelectedItem.Text=總?cè)藬?shù)) Lbl_all.Visible=true; Lbl_all.Text=總?cè)藬?shù)為:+dr2.ToString( ); else if(Ddl_content.SelectedItem.Text=優(yōu)秀人
57、數(shù)) Lbl_a.Visible=true; Lbl_a.Text=優(yōu)秀人數(shù)為:+dr2.ToString( ); 79 成績(jī)信息管理頁(yè)面 else if(Ddl_content.SelectedItem.Text=不及格人數(shù)) Lbl_unpass.Visible=true; Lbl_unpass.Text=不及格人數(shù)為:+dr2.ToString( ); else Lbl_note.Text=無此信息; cn.Close( ); 80 學(xué)生選課管理頁(yè)面 在圖12.7的管理頁(yè)面中,下拉列表框Ddl_course和Ddl_teacher的數(shù)據(jù)在頁(yè)面初始化事件Page_Load( )中進(jìn)行綁定,
58、綁定內(nèi)容為數(shù)據(jù)庫(kù)中的所有課程和教師信息 圖12.7 選課管理頁(yè)面 81 學(xué)生選課管理頁(yè)面 后臺(tái)支持類(student course.aspx.cs)的主要相關(guān)代碼:/程序清單12-5 public class student_course : System.Web.UI.Page SqlConnection cn; private void Page_Load(object sender, System.EventArgs e) /教師名稱下拉列表框綁定 string strconn= ConfigurationSettings.AppSettingsdsn; /連接本地計(jì)算機(jī)的Student
59、_Class數(shù)據(jù)庫(kù) SqlConnection cn0= new SqlConnection (strconn); if(!IsPostBack) 82 學(xué)生選課管理頁(yè)面 cn0.Open ( ); string mysql=select * from teacher; SqlCommand cm0=new SqlCommand (mysql,cn0); SqlDataReader dr0=cm0.ExecuteReader ( ); while(dr0.Read ( ) Ddl_teacher.Items .Add (new ListItem(dr0Teacher_name. ToStrin
60、g( ),dr0Teacher_id.ToString( ) ); cn0.Close ( );83 學(xué)生選課管理頁(yè)面 /課程名稱下拉列表框綁定 cn0.Open ( ); string mysql1=select * from course; SqlCommand cm1=new SqlCommand (mysql1,cn0); SqlDataReader dr1=cm1.ExecuteReader ( ); while(dr1.Read ( ) Ddl_course.Items .Add (new ListItem(dr1Course_name. ToString( ) ,dr1Cours
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高效照明電器產(chǎn)品項(xiàng)目提案報(bào)告
- 2025年住宅用地購(gòu)買與建設(shè)合同
- 2025年汽車尾氣凈化三效催化劑項(xiàng)目規(guī)劃申請(qǐng)報(bào)告
- 2025年個(gè)人對(duì)公商業(yè)租賃協(xié)議分析與
- 2025年債轉(zhuǎn)股增資擴(kuò)股項(xiàng)目協(xié)議書
- 2025年離婚雙方權(quán)益平衡協(xié)議策劃
- 2025年住宅消防設(shè)施建設(shè)協(xié)議范本
- 2025年企業(yè)投資策劃合作合同協(xié)議范本
- 職業(yè)技能培訓(xùn)管理協(xié)議書
- 2025年終止軟件工程師職業(yè)勞動(dòng)合同協(xié)議
- 化工設(shè)計(jì)自動(dòng)控制方案
- 幼兒園幼小銜接考試試題一
- 天津事業(yè)單位筆試試題2024
- 《化妝品穩(wěn)定性試驗(yàn)規(guī)范》
- 《社區(qū)康復(fù)》課件-第四章 腦血管疾病患者的社區(qū)康復(fù)實(shí)踐
- (2024版)小學(xué)六年級(jí)數(shù)學(xué)考試命題趨勢(shì)分析
- 四年級(jí)下冊(cè)數(shù)學(xué)單位換算題200道及答案
- 變電站現(xiàn)場(chǎng)運(yùn)行通用規(guī)程考試試題及答案
- 攪拌車駕駛員安全培訓(xùn)
- 船舶管理(電子電氣員)5.船舶安全用電
- 中儲(chǔ)糧油脂公司考試題
評(píng)論
0/150
提交評(píng)論