版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、ASP.NET程序設計教程第12章 程序設計實例上海交通大學出版社1內(nèi)容提要本章介紹一個學生課程管理系統(tǒng),目標是提高學生選課和成績管理工作的效率,圍繞此管理所需要的學生個人信息、課程和任課教師信息、所選課程信息進行管理及維護。學生可以通過此系統(tǒng)進行個人信息、考試成績查詢以及完成選課功能。系統(tǒng)開發(fā)的總體任務是實現(xiàn)學生選課和成績管理的系統(tǒng)化、規(guī)范化 212.1 系統(tǒng)總體設計 12.1.1 系統(tǒng)功能描述學生課程管理系統(tǒng)的功能包括: 管理員的操作功能 學生的操作功能312.1.1 系統(tǒng)功能描述管理員的操作功能。管理員權限最大,可以對學生、班級、課程等情況進行統(tǒng)一的管理,細分如下:學生信息的瀏覽;學生信
2、息的添加;學生信息的修改、刪除。(2) 班級管理信息的瀏覽;班級管理信息的添加;班級管理信息的修改、刪除。(3) 教師信息的添加;教師權限的修改;管理員可將教師的權限設為管理員。(4) 學?;菊n程的瀏覽;學校基本課程的添加;學校基本課程修改、刪除。4(5) 學校對所設課程進行教師分配。(6) 學生成績信息的瀏覽與統(tǒng)計,可按成績具體范圍(如系、班級等)、課號、年度、統(tǒng)計內(nèi)容方面對成績進行統(tǒng)計;學生成績信息的添加;學生成績信息的修改、刪除。(7) 學生選課信息的管理,包括修改與刪除;學生選課人數(shù)的統(tǒng)計。(8) 為了保證系統(tǒng)的安全性,除了管理員用戶,不允許其他用戶進入該模塊。12.1.1 系統(tǒng)功能
3、描述5學生的操作功能。學生只是利用此系統(tǒng)進行與自己有關的信息查詢、輸入等,不能操作和修改其他信息,學生所具有的操作功能如下:瀏覽個人基本信息;學生登錄系統(tǒng)后,修改個人信息,為了保證系統(tǒng)的安全性,學生只能修改個人密碼;瀏覽課程信息,進行選課等。(2) 學生利用此系統(tǒng)選修課程,在選課過程中,學生可查詢待選課程的基本信息及教師情況,并可瀏覽截止當前選此課的人數(shù);瀏覽個人的選課情況;瀏覽個人成績信息。 12.1.1 系統(tǒng)功能描述612.1.2 系統(tǒng)性能 一般的性能需求是指相互消息傳遞順利,協(xié)議分析正確,界面友好,運行時間滿足使用需要,安全性得到完全保證。就實際情況,在高系統(tǒng)配置、高網(wǎng)絡帶寬很容易得到保
4、證的情況下,我們最需要考慮的性能需求就是系統(tǒng)安全性問題。要限定相應的目錄訪問,如其他用戶不能隨意訪問管理員目錄。進行了認證與授權。尤其要注意認證,在此使用forms驗證,簡單地說就是確定誰是特定用戶,并針對安全性驗證該用戶的身份。在識別用戶之后,就要利用一種方法向用戶授權,從而能夠使用系統(tǒng)的特定功能。也就是說,需要一種方法來決定允許特定用戶進行什么樣的操作。在配置文件Web.config中進行了相關的設置。712.2 系統(tǒng)功能模塊分析 學生課程管理系統(tǒng)的主要功能包括: 用戶(管理員)的管理,含學生、教師、課程、班級、選課、成績等有關信息的管理 學生對個人信息的管理等功能,含修改密碼、課程信息、
5、選課操作、所選課程、成績查詢等功能8系統(tǒng)模塊圖 學生課程管理系統(tǒng)功能結構圖設計如圖所示12.2 系統(tǒng)功能模塊分析 912.2.1 用戶(管理員)管理模塊 該模塊主要由6個子模塊構成,主要負責管理員、教師以及學生信息等相關的管理功能 學生管理子模塊 教師管理子模塊 課程管理模塊 班級管理模塊 選課管理模塊 成績管理模塊 管理員與教師管理子模塊1012.2.2 學生操作模塊 學生只能進入此模塊,該模塊主要有5個方面的功能。可操作有關個人的信息,如: 修改個人的登錄密碼 瀏覽相關的課程信息 進行選課操作 查看自己已經(jīng)選修的課程 查詢自己的成績1112.3 數(shù)據(jù)庫設計和建立 用戶信息主要有用戶登錄號、
6、用戶密碼、用戶權限代碼,讀者可根據(jù)自己的具體需要添加字段,表12.1顯示了表中各個字段的數(shù)據(jù)類型、大小以及簡短描述列 名數(shù)據(jù)類型寬度字 段 描 述User_idVarchar 20用戶名,設為主鍵User_PasswordVarchar 20用戶登錄本系統(tǒng)時的用戶密碼User_PowerInt 4用戶的類型,0為本校注冊學生,1為管理員表12.1 用戶信息數(shù)據(jù)表(Users) 12在系統(tǒng)中,最重要的對象是學生,系統(tǒng)設計了學生信息數(shù)據(jù)表(student),用于存儲本校所有學生信息,其中包括在校生,也包括已畢業(yè)學生。表12.2中顯示了表中各個字段的數(shù)據(jù)類型、大小以及簡短描述 列 名數(shù)據(jù)類型寬度字
7、段 描 述 Student_id Varchar 20 學生的學號,設為主鍵 Student_name Varchar 20 學生姓名 Student_sex Char 4 學生性別 Student_nation Char 4 學生民族表12.2 學生信息數(shù)據(jù)表(Student) 12.3 數(shù)據(jù)庫設計和建立 13列 名數(shù)據(jù)類型寬度字 段 描 述Student_birthday Datetime 8 學生出生日期 Student_time Datetime 8 學生入學時間 Student_classid Varchar 50 學生所在班級號 Student_home Varchar 50 學生
8、家庭所在地 Student_else Varchar 50 備注表12.2 學生信息數(shù)據(jù)表(Student) 12.3 數(shù)據(jù)庫設計和建立 14學生所在班級信息相對獨立,系統(tǒng)用班級信息數(shù)據(jù)表(class)記錄本學校所有班級信息。表12.3中顯示了表中各個字段的數(shù)據(jù)類型、大小以及簡短描述 列 名數(shù)據(jù)類型寬度字 段 描 述 Class_id Varchar 20 班級號,設為主鍵 Class_name Varchar 50 班級全稱Class_departmemt Varchar 50 班級所在系別 Class_college Varchar 50 記錄班級所在學院 Class_teacherid
9、Varchar 20 記錄本班級班主任號表12.3 班級信息數(shù)據(jù)表(Class)12.3 數(shù)據(jù)庫設計和建立 15系統(tǒng)構建教師信息數(shù)據(jù)表(teacher)用來存儲本校所有教師信息,教師信息表給出一個較為簡單的結構。表12.4顯示了表中各個字段的數(shù)據(jù)類型、大小以及簡短描述 列 名數(shù)據(jù)類型寬度字 段 描 述 Teacher_id Varchar50 記錄教師號,設為主鍵 Teacher_name Varchar50 記錄教師姓名 Teacher_college Varchar50 記錄教師所在系表12.4 教師信息數(shù)據(jù)表(teacher)12.3 數(shù)據(jù)庫設計和建立 16每一個教師講授什么課程都有記錄
10、,而且一門課可能會有多個老師授課。因此必須包括課程名稱、年度、學期、班級號等,以便管理員或?qū)W生查詢信息,系統(tǒng)采用教師課程記錄數(shù)據(jù)表(teacher_course)記錄以上信息。如表12.5所示表中各個字段的數(shù)據(jù)類型、大小以及簡短描述 12.3 數(shù)據(jù)庫設計和建立 17列 名數(shù)據(jù)類型寬度字 段 描 述ID Int 4教師-課程記錄的唯一ID號,設為主鍵Teacher id Varchar 50 教師號Course id Varchar 50 教師所任課程號Class id Varchar 50 教師所教班級號Course_year Char 5 年度學期Course_men Int 4 教師所任選
11、修課程限報人數(shù)表12.5 教師課程記錄數(shù)據(jù)表(teacher_course)12.3 數(shù)據(jù)庫設計和建立 18學生總是離不開課程,系統(tǒng)設計了課程信息數(shù)據(jù)表(course),用于存儲本校所有課程信息,其中包括課程類型、學分等。表12.6顯示了表中各個字段的數(shù)據(jù)類型、大小以及簡短描述。 12.3 數(shù)據(jù)庫設計和建立 19列 名數(shù)據(jù)類型寬度字 段 描 述Course_idVarchar50課程號,設為主鍵Course_nameVarchar50課程名Course_periodInt4課程學時Class_creditInt4課程學分Course_kindLm4課程類型,0為公共課,1為專業(yè)課,2為選修課C
12、ourse_describeVarchar50課程具體描述表12.6 課程信息數(shù)據(jù)表(teacher_course)12.3 數(shù)據(jù)庫設計和建立 20學生所學課程都會有成績,并且每個學生每一門課只有一個成績。系統(tǒng)設計了學生課程信息數(shù)據(jù)表(studentcourse),用于存儲本校所有學生所學課程信息,表12.7顯示了表中各個字段的數(shù)據(jù)類型、大小以及簡短描述。 12.3 數(shù)據(jù)庫設計和建立 21列 名數(shù)據(jù)類型寬度字 段 描 述IDBigInt 8學生-課程記錄的惟一ID號,設為主鍵Studen_id Varchar 50學生學號Course_id Varchar 50學生所學課程號Stude_rad
13、e Int 4學生成績Course_year Char 5年度學期表12.7 學生課程記錄數(shù)據(jù)表(student_course)12.3 數(shù)據(jù)庫設計和建立 22系統(tǒng)使用Microsoft SQL Server 2000建立數(shù)據(jù)庫,庫名為S_Class。庫中設計的七個表及表間相關關系如圖12.2所示。 12.3 數(shù)據(jù)庫設計和建立 2312.3 數(shù)據(jù)庫設計和建立 構建了數(shù)據(jù)庫的表結構后,接下來創(chuàng)建負責表中信息選擇、添加、更新以及刪除的相關存儲過程。系統(tǒng)使用了幾個存儲過程。具體操作: select_student_1存儲過程 Insert_student_1存儲過程24select_student_
14、1存儲過程以下代碼表示了這一存儲過程: CREATE PROCEDURE select_student_l (Student_id varchar(50) ) AS select * from student where Student_id=Student_id25Insert_student_1存儲過程以下代碼表示了這一存儲過程: 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存儲過程 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存儲過程 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ù)庫 對于數(shù)據(jù)庫調(diào)用字符串,由于數(shù)據(jù)庫使用的是本地數(shù)據(jù)庫,Data Source(數(shù)據(jù)源)設置為(local);UID(用戶ID)賦值為系統(tǒng)默認的sa:PWD(連接密碼)賦值為空;D
17、ATABASE(數(shù)據(jù)庫名稱)設為我們上一節(jié)中創(chuàng)建的S_Class。Web.Config配置文檔的相關主要代碼如下: 2912.4.2 設置用戶驗證和授權 先在Web.Config中設置用戶名和密碼,代碼清單如下: 3012.4.2 設置用戶驗證和授權 然后設置目錄manager的訪問權限。 3112.5 主要界面及相關代碼分析 12.5.1 學生課程管理系統(tǒng)首頁 學生課程管理系統(tǒng)首頁如圖12.3所示 圖12.3 學生課程管理系統(tǒng)首頁 3212.5.1 學生課程管理系統(tǒng)首頁 /程序清單12-1 private void Btn_enter_Click(object sender, System.
18、EventArgs e) /從文件web.config中讀取連接字符串,并連接本地計算機的S_Class數(shù)據(jù)庫 String str_id= Tbx_userid.Text; string strconn= ConfigurationSettings.AppSettingsdsn; SqlConnection cn=new SqlConnection(strconn); cn.Open( ); /打開連接3312.5.1 學生課程管理系統(tǒng)首頁 /構造SQL語句,檢驗用戶名和密碼是否正確 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中,則進入管理員模塊。Sy
20、stem.Web.Security.FormsAuthentication.RedirectFromLoginPage (this.Tbx_userid.Text,false); Response.Redirect(manager/student.aspx); /否則,看是否在數(shù)據(jù)庫表中,若在表中,進入學生 else if(dr.Read( ) /保存當前用戶名到Session。 SessionUser_id=drUser_id; Sessionuser_power=drUser_power;12.5.1 學生課程管理系統(tǒng)首頁 3512.5.1 學生課程管理系統(tǒng)首頁 if(int)Sessio
21、nUser_power=0) /進入學生操作頁面 Response.Redirect(query.aspx); else Lbl_note.Text=對不起,登陸失??!; cn.Close( ); /關閉連接 3612.5.2 管理員操作模塊 學生信息管理頁面學生信息維護頁面窗體如圖12.4所示,其所屬的學生信息維護模塊是學生課程管理系統(tǒng)中管理學生學籍的部分 圖12.4 學生信息維護頁面 37 學生信息管理頁面學生信息維護頁面的后臺支持類(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 / 在此處放置用戶代碼以初始化頁面 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) 學生信息管理頁面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; 學生信息管理頁面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, 學生信息管理頁面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); 學生信息管理頁面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); 學生信息管理頁面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; 學生信息管理頁面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; 學生信息管理頁面45 cm.Connection.Open( ); cm.ExecuteNonQuery( ); Lbl_note.Text=編輯成功; Dgd_student.EditItemIndex=-1; catch Lbl_note.Text=編輯失敗,請檢查輸入!; Lbl_note.Stylecolor=red; cm.Connection.Close( ); Bindgrid( ); 學生信息管理頁面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 學生信息管理頁面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; 學生信息管理頁面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); 學生信息管理頁面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); 學生信息管理頁面50 課程信息管理主頁面 課程信息管理頁面窗體如圖12.5所示,它和學生信息維護頁面非常相似 圖12.5 課程信息管理頁面 51 課程信息管理主頁面 課程信息管理頁的后臺支持類(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) / 在此處放置用戶代碼以初始化頁面 string strconn= ConfigurationSettings.AppSettingsdsn;52 課程信息管理主頁面 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 課程信息管理主頁面 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 課程信息管理主頁面 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 課程信息管理主頁面 cm.ExecuteNonQuery( ); Lbl_note.Text=刪除成功; catch(SqlException) Lbl_note.Text=刪除失敗; Lbl_note.Stylecolor=red; cm.Connection.Close( ); Bindgrid( ); 56
40、課程信息管理主頁面 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 課程信息管理主頁面 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 課程信息管理主頁面 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 課程信息管理主頁面 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 課程信息管理主頁面 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 課程信息管理主頁面 SqlDataAdapter da=new SqlDataAdapter(strsql,cn); DataSet ds=new DataSet( ); da.Fill(ds); Dgd_course.DataSource=ds; Dgd_course.D
46、ataBind( ); 62 成績信息管理頁面 成績管理頁面窗體如圖12.6所示,該頁面完成的功能較多,包括按選定的條件進行限定條件的成績查詢 圖12.6 成績管理頁面63 成績信息管理頁面 成績管理頁面的后臺支持類(grade_manage.aspx.cs)的統(tǒng)計內(nèi)容的主要相關代碼,讀者可以重點參見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 成績信息管理頁面 / 在此處放置用戶代碼以初始化頁面 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 成績信息管理頁面 if(Ddl_stat.SelectedItem.Value=系別) 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+
49、and student_course. Student_id=student.Student_id and student.Student_classid=class.Class_id and class.Class_department=+Tbx_area.Text+ ; 66 成績信息管理頁面 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 成績信息管理頁面 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 成績信息管理頁面 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 成績信息管理頁面 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 成績信息管理頁面 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 成績信息管理頁面 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 成績信息管理頁面 Lbl_high.Visible=true; Lbl_high.Text=最高分為:+dr1.ToString( ); else if(Ddl_content.SelectedItem.Text=總人數(shù)) Lbl_all.Visible=true; Lbl_all.Text=總人數(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 成績信息管理頁面 else if(Ddl_content.SelectedItem.Text=不及格人數(shù)) Lbl_unpass.Visible=true; Lbl_unpass.Text=不及格人數(shù)為:+dr2.ToString( ); else Lbl_note.Text=無此信息; cn.Close( ); 80 學生選課管理頁面 在圖12.7的管理頁面中,下拉列表框Ddl_course和Ddl_teacher的數(shù)據(jù)在頁面初始化事件Page_Load( )中進行綁定,
58、綁定內(nèi)容為數(shù)據(jù)庫中的所有課程和教師信息 圖12.7 選課管理頁面 81 學生選課管理頁面 后臺支持類(student course.aspx.cs)的主要相關代碼:/程序清單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; /連接本地計算機的Student
59、_Class數(shù)據(jù)庫 SqlConnection cn0= new SqlConnection (strconn); if(!IsPostBack) 82 學生選課管理頁面 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 學生選課管理頁面 /課程名稱下拉列表框綁定 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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版三年級下冊數(shù)學期中測試卷附答案
- 印染廢水中水回用設計方案
- 2024年圖書出版合同范本
- 工程成本部管理制度
- 會議費用管理制度
- 脾破裂緊急護理措施
- 2024酒店智能照明維保合同
- 2024專利轉讓專利權合同
- 戲劇影視文學專業(yè)培養(yǎng)方案
- 2023年西安醫(yī)學院附屬寶雞醫(yī)院護理人員招聘筆試真題
- 農(nóng)田無償代耕代種合同范本
- 廣東星海音樂廳交響樂大廳的聲學設計2023
- 血透醫(yī)師崗位職責
- 商會規(guī)章制度完整版
- TD-T 1048-2016 耕作層土壤剝離利用技術規(guī)范
- 二年級上冊識字1:場景歌評課稿一等獎聽課記錄教學反思
- 《病原生物與免疫學》課程標準
- 投資項目法律意見書模板-法律意見書模板
- DB63-T 2109-2023 湟水流域水生植物繁育技術規(guī)程
- 中藥煎藥質(zhì)量評估檢查表
- 戴姆勒產(chǎn)品開發(fā)質(zhì)量體系
評論
0/150
提交評論