ASP.NET學生信息管理系統

摘 要

??? 本文介紹了在ASP.net環境下采用“自上而下地總體規劃,自下而上地應用開發”的策略開發一個管理信息系統的過程。通過分析某一學校學生管理的不足,創建了一套行之有效的計算機管理學生的方案。文章介紹了學生管理信息系統的系統分析部分,包括可行性分析、業務流程分析等;系統設計部分主要介紹了系統功能設計和數據庫設計及代碼設計;系統實現部分說明了幾個主要模塊的算法,?? 本系統界面友好,操作簡單,比較實用。

【關鍵字】:管理信息系統、學生管理、ASP.net應用

3.3系統功能模塊分析

SMS主要的功能包括以下幾個方面:用戶管理(管理員,老師管理和學生管理),課程管理,班級管理,成績管理選課管理。設計圖如5--3所示,除此之外,系統還包含了教師管理,班級管理等輔助功能模塊,用于協調4個主模塊。

用戶管理模塊:該模塊由兩個子模塊構成,分別示管理員與教師管理模塊和學生管理模塊。主要負責管理員與教師以及學生信息的管理功能,具體參看管理員與教師管理子模塊和學生管理子模塊的模塊功能描述。

管理員與教師管理子模塊:該模塊主要負責管理系統管理員的信息。它為用戶管理模塊的一個子模塊。主要功能是將本校的教師權限設為管理員。管理員課添加新教師信息,每個教師有唯一的編號,之后通過把教師加為管理員,而令此教師具有管理員的權限,從而教師可以登陸系統進行管理員的相關操作。

學生管理子模塊:該模塊主要負責管理所有在校注冊學生的個人信息。它為用戶管理模塊的一個子模塊。主要功能包括添加,刪除,修改,查找學生信息。每個學生有唯一的學號,管理員添加新生后,新生即可登陸此系統瀏覽個人信息,登陸此系統的用戶名和密碼默認都是此學生的學號。

課程管理模塊:該模塊負責管理本校所有的課程信息。主要功能包括添加,刪除,修改,查找課程信息。只有管理員才具有對課程信息進行維護的權限,課程的類型分三種:公共課,專業課和選修課。課程管理模塊是選課管理模塊的基礎,只有在課程管理中添有選修課的信息,學生才能進行選課。

選課管理模塊:該模塊負責選課的管理。主要功能包括刪除,統計學生選課信息。它以在課程管理系統中維護號的信息作為基礎,既可以對選修課程進行管理,也可以對統計選課人數,并根據學生選課時間先后決定最終選修此課的同學。

成績管理模塊:學生學的每一門課顯然最后要有成績,查詢的內肉包括課程名稱,學分,成績等。只有管理員可以錄入學生每一門課的成績,并能進行修改,學生只能查詢自己所學課程的成績,并且可以查詢每一學期學生所學課程所獲總學分,前提是成績必須及格,否則將沒有此課的成績。

班級管理模塊:該模塊負責班級的管理。主要功能包括添加,刪除和修改班級信息,以及對班級信息的查詢。只有管理員才具有對班級管理信息進行維護的權限。學生信息的添加是建立在班級信息維護的基礎上,每個學生必然屬于特定的班級。并且在管理員對學生成績查詢統計時,可以統計各個班級的平均分,最高分。

8.1學生管理系統首頁

學生管理系統首頁具有自動導航功能,不同用戶登陸時將根據不同的身份進入不同的系統功能頁。

代碼入下

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Data.SqlClient;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Configuration;

namespace sms

{

??? public class _default : System.Web.UI.Page

??? {

???????? protected System.Web.UI.WebControls.TextBox Tbx_userid;

???????? protected System.Web.UI.WebControls.TextBox Tbx_userpwd;

???????? protected System.Web.UI.WebControls.Label Lbl_note;

???????? protected System.Web.UI.WebControls.Button Btn_enter;

??? ???? private void Page_Load(object sender, System.EventArgs e)

???????? {

???????????? // 在此處放置用戶代碼以初始化頁面

???????? }

???????? #region Web Form Designer generated code

???????? override protected void OnInit(EventArgs e)

???????? {

???????????? //

???????????? // CODEGEN:該調用是 ASP.NET Web 窗體設計器所必需的。

???????????? //

???????????? InitializeComponent();

???????????? base.OnInit(e);

???????? }

???????? private void InitializeComponent()

???????? {???

???????????? this.Btn_enter.Click += new System.EventHandler(this.Btn_enter_Click);

???????????? this.Load += new System.EventHandler(this.Page_Load);

???????? }

???????? #endregion

???????? private void Btn_enter_Click(object sender, System.EventArgs e)

???????? {

???????????? string strconn= ConfigurationSettings.AppSettings["dsn"];

???????????? SqlConnection cn=new SqlConnection(strconn);?

???????????? cn.Open();

???????????? string strsql="select * from users where User_id='"+Tbx_userid.Text+"'and User_password='"+Tbx_userpwd.Text+"'";

???????????? SqlCommand cm=new SqlCommand(strsql,cn);

???????????? SqlDataReader dr=cm.ExecuteReader();

???????????? if(dr.Read())

???????????? {?? Session["User_id"]=dr["User_id"];

????????????????? Session["user_power"]=dr["User_power"];??????????

????????????????? if((int)Session["User_power"]==0)

????????????????? {

????????????????????? Response.Redirect("query.aspx");

????????????????? }

????????????????? else

????????????????? {

????????????????????? Response.Redirect("student.aspx");

????????????????? }

???????????? }

???????????? else

???????????? {

????????????????????? Lbl_note.Text="對不起,登陸失敗!";

???????????? ? }

???????????? cn.Close();

???????? }

????????

??? }

}

8.2學生信息維護頁面

? 學生信息維護模塊時SMS重管理學生學籍的部分。頁面采用DataGrid控件的Dgd_student與DataSet數據集的綁定返回所有學生信息,可以對學生信息進行修改和刪除。

代碼如下:

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Data.SqlClient;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Configuration;

namespace sms

{

??? /// <summary>

??? /// student 的摘要說明。

??? /// </summary>

??? public class student : System.Web.UI.Page

??? {

???????? protected System.Web.UI.WebControls.LinkButton Lbtn_course;

???????? protected System.Web.UI.WebControls.LinkButton Lbtn_sortcourse;

???????? protected System.Web.UI.WebControls.DataGrid Dgd_student;

???????? protected System.Web.UI.WebControls.Button Btn_all;

???????? protected System.Web.UI.WebControls.Panel Pnl_sort;

???????? protected System.Web.UI.WebControls.TextBox Tbx_sortid;

???????? protected System.Web.UI.WebControls.Button Btn_ok;

???????? SqlConnection cn;

???????? protected System.Web.UI.WebControls.Button Btn_search;

???????? protected System.Web.UI.WebControls.Label Lbl_note;

???????? protected System.Web.UI.WebControls.LinkButton Lbtn_add;

???????? protected System.Web.UI.WebControls.TextBox Tbx_name;

???????? protected System.Web.UI.WebControls.Button Btn_exit;

???????? protected System.Web.UI.WebControls.LinkButton Lbtn_grade;

???????? protected System.Web.UI.WebControls.LinkButton Lbtn_addclass;

???????? protected System.Web.UI.WebControls.LinkButton Lbtn_addteacher;

???????? protected System.Web.UI.WebControls.LinkButton Lbtn_student;

???????? string strsql;

???????? private void Page_Load(object sender, System.EventArgs e)

???????? {

???????????? string strconn= ConfigurationSettings.AppSettings["dsn"];

???????????? cn=new SqlConnection(strconn);?

???????????? if(!IsPostBack)

???????????? Bindgrid();

???????? }

???????? #region Web Form Designer generated code

???????? override protected void OnInit(EventArgs e)

???????? {

???????????? InitializeComponent();

???????????? base.OnInit(e);

???????? }

????????

???????? private void InitializeComponent()

???????? {???

???????????? this.Lbtn_addclass.Click += new System.EventHandler(this.Lbtn_addclass_Click);

???????????? this.Lbtn_addteacher.Click += new System.EventHandler(this.Lbtn_addteacher_Click);

???????????? this.Lbtn_course.Click += new System.EventHandler(this.Lbtn_course_Click);

???????????? this.Lbtn_sortcourse.Click += new System.EventHandler(this.Lbtn_sortcourse_Click);

???????????? this.Lbtn_grade.Click += new System.EventHandler(this.Lbtn_grade_Click);

???????????? this.Btn_search.Click += new System.EventHandler(this.Btn_search_Click);

???????????? this.Btn_ok.Click += new System.EventHandler(this.Btn_ok_Click);

???????????? this.Lbtn_add.Click += new System.EventHandler(this.Lbtn_add_Click);

???????????? this.Btn_all.Click += new System.EventHandler(this.Btn_all_Click);

???????????? this.Btn_exit.Click += new System.EventHandler(this.Btn_exit_Click);

???????????? this.Load += new System.EventHandler(this.Page_Load);

???????? }

???????? #endregion

???????? private void Btn_search_Click(object sender, System.EventArgs e)

???????? {?

???????????? Pnl_sort.Visible=true;

???????? }

???????? private void Btn_all_Click(object sender, System.EventArgs e)

???????? {?

????????????

???????????? Pnl_sort.Visible=false;

???????????? Bindgrid();

????????????

??? }

???????? public void DataGrid_Page(object sender,DataGridPageChangedEventArgs e)

???????? {

???????????? Dgd_student.CurrentPageIndex=e.NewPageIndex;

???????????? Bindgrid();

???????? }

???????? public void DataGrid_cancel(object sender,DataGridCommandEventArgs e)

???????? {

????????????

???????????? Dgd_student.EditItemIndex=-1;

???????????? Bindgrid();

????????????

???????? }

???????? public void DataGrid_edit(object sender,DataGridCommandEventArgs e)

???????? {

????????????

????????????????? Dgd_student.EditItemIndex=(int)e.Item.ItemIndex;

????????

????????????????? Bindgrid();

????????????

???????? }

???????? public void DataGrid_update(object sender,DataGridCommandEventArgs e)

???????? {

???????????? string strsql="update student set Student_name=@Student_name,Student_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 Student_id=@Student_id";

???????????? SqlCommand cm=new SqlCommand(strsql,cn);

???????????? try

???????????? {

???????????? cm.Parameters.Add(new SqlParameter("@Student_name",SqlDbType.VarChar,50));

???????????? cm.Parameters.Add(new SqlParameter("@Student_sex",SqlDbType.Char,10));

???????? ??? cm.Parameters.Add(new SqlParameter("@Student_nation",SqlDbType.Char,10));

???????????? cm.Parameters.Add(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));

???????????? cm.Parameters.Add(new SqlParameter("@Student_else",SqlDbType.VarChar,50));

???????????? cm.Parameters.Add(new SqlParameter("@Student_id",SqlDbType.VarChar,50));

???????????? string colvalue=((TextBox)e.Item.Cells[1].Controls[0]).Text;

???????????? cm.Parameters["@Student_name"].Value=colvalue;

???????????? colvalue=((TextBox)e.Item.Cells[2].Controls[0]).Text;

???????????? cm.Parameters["@Student_sex"].Value=colvalue;

???????????? colvalue=((TextBox)e.Item.Cells[3].Controls[0]).Text;

???????????? cm.Parameters["@Student_nation"].Value=colvalue;

???????? colvalue=((TextBox)e.Item.Cells[4].Controls[0]).Text;

???????????? cm.Parameters["@Student_birthday"].Value=colvalue;

???????????? colvalue=((TextBox)e.Item.Cells[5].Controls[0]).Text;

???????????? cm.Parameters["@Student_time"].Value=colvalue;

???????????? colvalue=((TextBox)e.Item.Cells[6].Controls[0]).Text;

???????????? cm.Parameters["@Student_classid"].Value=colvalue;

???????????? colvalue=((TextBox)e.Item.Cells[7].Controls[0]).Text;

???????????? cm.Parameters["@Student_home"].Value=colvalue;

???????????? colvalue=((TextBox)e.Item.Cells[8].Controls[0]).Text;

???????????? cm.Parameters["@Student_else"].Value=colvalue;????????

???????? ??? cm.Parameters["@Student_id"].Value=Dgd_student.DataKeys[(int)e.Item.ItemIndex];

???????????? cm.Connection.Open();??????????

????????????????? cm.ExecuteNonQuery();

????????????????? Lbl_note.Text="編輯成功";

????????????????? Dgd_student.EditItemIndex=-1;

???????????? }

???????????? catch

???????????? {

????????????????? Lbl_note.Text="編輯失敗,請檢查輸入!";

????????????????? Lbl_note.Style["color"]="red";

???????????? }

???????????? cm.Connection.Close();????

???????????? Bindgrid();

????????????

???????? }

????????????????? public void DataGrid_delete(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.Parameters["@userid"].Value=Dgd_student.DataKeys[(int)e.Item.ItemIndex];

???????????? cm.Connection.Open();

???????????? try

???????????? {

????????????????? cm.ExecuteNonQuery();

????????????????? Lbl_note.Text="刪除成功";

?????????????????

???????????? }

???????????? catch(SqlException)

???????????? {

????????????????? Lbl_note.Text="刪除失敗";

????????????????? Lbl_note.Style["color"]="red";

???????????? }

???????????? cm.Connection.Close();?????????

???????????? Bindgrid();

???????? }

???????? public void Bindgrid()

???????? {? ? strsql="select * from student";

???????????? SqlDataAdapter da=new SqlDataAdapter(strsql,cn);

???????????? DataSet ds=new DataSet();

???????????? 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);

???????????? DataSet ds=new DataSet();

???????????? da.Fill(ds);

???????????? Dgd_student.DataSource=ds;

???????????? Dgd_student.DataBind();

???????? }

???????? private void Lbtn_course_Click(object sender, System.EventArgs e)

???????? {

???????????? Response.Redirect("course.aspx");

???????? }

???????? private void Lbtn_sortcourse_Click(object sender, System.EventArgs e)

???????? {

???????????? Response.Redirect("student_course.aspx");

???????? }

???????? private void Lbtn_add_Click(object sender, System.EventArgs e)

???????? {

???????????? Response.Redirect("addstudent.aspx");

???????? }

???????? private void Btn_exit_Click(object sender, System.EventArgs e)

???????? {

???????????? Response.Redirect("default.aspx");

???????? }

???????? private void Lbtn_grade_Click(object sender, System.EventArgs e)

???????? {

???????????? Response.Redirect("grade_manage.aspx");

???????? }

???????? private void Lbtn_addclass_Click(object sender, System.EventArgs e)

???????? {

???????????? Response.Redirect("classes.aspx");

???????? }

???????? private void Lbtn_addteacher_Click(object sender, System.EventArgs e)

???????? {

???????????? Response.Redirect("teacher.aspx");

???????? }

???????? private void Lbtn_student_Click(object sender, System.EventArgs e)

???????? {

???????????? Response.Redirect("student.aspx");

???????? }

??? }

}

8.3學生信息添加頁面

學生信息添加頁面主要負責往數據庫里添加數據。后臺支持事件主要為Btn_ok_Click()事件負責當用戶單擊“確定”按鈕后的數據庫添加操作。利用RequiredFieldValidator控件可以用來驗證用戶輸入信息是否為空。若輸入學號存在,利用CustomValidator驗證控件,觸發ServerValidator事件,判斷是否存在此學號的學生。“重置”按鈕的click事件將完成刷新此頁面的功能。

代碼如下:

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Data.SqlClient;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Configuration;

namespace sms

{

??? /// <summary>

??? /// addstudent 的摘要說明。

??? /// </summary>

??? public class addstudent : System.Web.UI.Page

??? {

???????? protected System.Web.UI.WebControls.TextBox Tbx_id;

???????? protected System.Web.UI.WebControls.TextBox Tbx_name;

???????? protected System.Web.UI.WebControls.TextBox Tbx_nation;

???????? protected System.Web.UI.WebControls.TextBox Tbx_birthday;

???????? protected System.Web.UI.WebControls.TextBox Tbx_time;

???????? protected System.Web.UI.WebControls.TextBox Tbx_home;

???????? protected System.Web.UI.WebControls.TextBox Tbx_else;

???????? protected System.Web.UI.WebControls.DropDownList Ddl_sex;

???????? protected System.Web.UI.WebControls.Button Btn_ok;

???????? protected System.Web.UI.WebControls.CustomValidator Cv_id;

???????? protected System.Web.UI.WebControls.Label Lbl_note;

???????? protected System.Web.UI.WebControls.Button Btn_reset;

???????? protected System.Web.UI.WebControls.RequiredFieldValidator Rfv_name;

???????? protected System.Web.UI.WebControls.RequiredFieldValidator Rfv_id;

???????? protected System.Web.UI.WebControls.RequiredFieldValidator Rfv_nation;

???????? protected System.Web.UI.WebControls.RequiredFieldValidator Rfv_birthday;

???????? protected System.Web.UI.WebControls.RequiredFieldValidator Rfv_time;

???????? protected System.Web.UI.WebControls.RequiredFieldValidator Rfv_class;

???????? protected System.Web.UI.WebControls.RequiredFieldValidator Rfv_home;

???????? protected System.Web.UI.WebControls.DropDownList Ddl_class;

??? ??? SqlConnection cn;

???????? private void Page_Load(object sender, System.EventArgs e)

???????? {//班級名稱下拉列表框綁定

???????????? string strconn= ConfigurationSettings.AppSettings["dsn"];

???????????? SqlConnection cn0=new SqlConnection(strconn);

???????????? if(!IsPostBack)

???????????? {

????????????????? cn0.Open ();

????????????????? string mysql="select * from class";

????????????????? SqlCommand cm1=new SqlCommand? (mysql,cn0);

????????????????? SqlDataReader dr1=cm1.ExecuteReader ();

????????????????? while(dr1.Read ())

????????????????? {

????????????????????? Ddl_class.Items .Add (new ListItem(dr1["Class_name"].ToString() ,dr1["Class_id"].ToString()) );

????????????????? }

????????????????? cn0.Close ();

???????????? }

???????????? // 在此處放置用戶代碼以初始化頁面

???????????? cn=new SqlConnection(strconn);?

???????? }

???????? #region Web Form Designer generated code

???????? override protected void OnInit(EventArgs e)

???????? {

???????????? //

???????????? // CODEGEN:該調用是 ASP.NET Web 窗體設計器所必需的。

???????????? //

???????????? InitializeComponent();

???????????? base.OnInit(e);

???????? }

????????

??? ??? private void InitializeComponent()

???????? {???

???????????? this.Cv_id.ServerValidate += new System.Web.UI.WebControls.ServerValidateEventHandler(this.Cv_id_ServerValidate);

???????????? this.Btn_ok.Click += new System.EventHandler(this.Btn_ok_Click);

???????????? this.Btn_reset.Click += new System.EventHandler(this.Btn_reset_Click);

???????????? this.Load += new System.EventHandler(this.Page_Load);

???????? }

???????? #endregion

???????? private void Btn_ok_Click(object sender, System.EventArgs e)

???????? {

????????????

???????????? SqlCommand cm=new SqlCommand("insert_student_1",cn);

???????????? cm.CommandType=CommandType.StoredProcedure;

???????????? try

???????????? {

???????????? cm.Parameters.Add(new SqlParameter("@Student_id",SqlDbType.VarChar,50));

???????????? cm.Parameters["@Student_id"].Value=Tbx_id.Text;

???????????? cm.Parameters.Add(new SqlParameter("@Student_name",SqlDbType.VarChar,50));

???????????? cm.Parameters["@Student_name"].Value=Tbx_name.Text;

???????????? cm.Parameters.Add(new SqlParameter("@Student_sex",SqlDbType.Char,10));

???????????? cm.Parameters["@Student_sex"].Value=Ddl_sex.SelectedItem.Value;

???????????? cm.Parameters.Add(new SqlParameter("@Student_nation",SqlDbType.Char,10));

???????????? cm.Parameters["@Student_nation"].Value=Tbx_nation.Text;

???????????? cm.Parameters.Add(new SqlParameter("@Student_birthday",SqlDbType.DateTime,8));

???????????? cm.Parameters["@Student_birthday"].Value=Tbx_birthday.Text;

???????????? cm.Parameters.Add(new SqlParameter("@Student_time",SqlDbType.DateTime,8));

???????????? cm.Parameters["@Student_time"].Value=Tbx_time.Text;

???????????? cm.Parameters.Add(new SqlParameter("@Student_classid",SqlDbType.VarChar,50));

???????????? cm.Parameters["@Student_classid"].Value=Ddl_class.SelectedItem.Value;

???????????? cm.Parameters.Add(new SqlParameter("@Student_home",SqlDbType.VarChar,50));

???????????? cm.Parameters["@Student_home"].Value=Tbx_home.Text;

???????????? cm.Parameters.Add(new SqlParameter("@Student_else",SqlDbType.VarChar,50));

???????????? cm.Parameters["@Student_else"].Value=Tbx_else.Text;

???????????? cm.Connection.Open();

???????????? cm.ExecuteNonQuery();

???????????? cm.Connection.Close();

???????????? insert();

???????????? }

???????????? catch

???????????? {

????????????????? Lbl_note.Text="添加失敗,請檢查輸入!";

????????????????? Lbl_note.Style["color"]="red";

???????????? }

???????? }

???????????? public void insert()

???????????? {

???????????? string strsl="insert into users(User_id,User_password,User_power) values(@User_id,@User_pwd,0)";

???????????? SqlCommand cm=new SqlCommand(strsl,cn);

???????????? cm.Parameters.Add(new SqlParameter("@User_id",SqlDbType.VarChar,50));

???????????? cm.Parameters["@User_id"].Value=Tbx_id.Text;

???????????? cm.Parameters.Add(new SqlParameter("@User_pwd",SqlDbType.VarChar,50));

???????????? cm.Parameters["@User_pwd"].Value=Tbx_id.Text;

???????????? cm.Connection.Open();

????????????????? try

????????????????? {

????????????????????? cm.ExecuteNonQuery();

????????????????????? Response.Redirect("student.aspx");

????????????????? }

????????????????? catch(SqlException)

????????????????? {

????????????????????? Lbl_note.Text="添加失敗";

????????????????????? Lbl_note.Style["color"]="red";

????????????????? }

???????????? cm.Connection.Close();

???????? }

???????? private void Btn_reset_Click(object sender, System.EventArgs e)

???????? {

???????????? Response.Redirect("addstudent.aspx");

???????? }

???????? private void Cv_id_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)

???????? {

???????????? string strconn= ConfigurationSettings.AppSettings["dsn"];

???????????? cn=new SqlConnection(strconn);

???????????? cn.Open();

???????????? SqlCommand cm=new SqlCommand("select_student_1",cn);

???????????? cm.CommandType=CommandType.StoredProcedure;

???????????? cm.Parameters.Add("@Student_id",SqlDbType.VarChar,50);

???????????? cm.Parameters["@Student_id"].Value=Tbx_id.Text;

???????????? SqlDataReader dr=cm.ExecuteReader();

???????????? if(dr.Read())

???????????? {

????????????????? args.IsValid=false;

???????????? }

???????????? else

???????????? {

????????????????? args.IsValid=true;

???????????? }

???????????? cn.Close();

???????? }

??? }

}

8.4課程信息管理頁面

課程信息管理頁面與學生信息維護頁面非常相似,進行DataGrid控件Dgd-course的綁定操作,管理員可以在此頁面進行課程信息的編輯和刪除。

主要相關代碼如下:

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Data.SqlClient;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Configuration;

namespace sms

{

??? /// <summary>

??? /// course 的摘要說明。

??? /// </summary>

??? public class course : System.Web.UI.Page

??? {

??? ??? SqlConnection cn;

???????? protected System.Web.UI.WebControls.TextBox Tbx_name;

???????? protected System.Web.UI.WebControls.TextBox Tbx_id;

???????? protected System.Web.UI.WebControls.Button Btn_search;

???????? protected System.Web.UI.WebControls.DataGrid Dgd_course;

???????? protected System.Web.UI.WebControls.Label Lbl_note;

???????? protected System.Web.UI.WebControls.Button Btn_exit;

???????? string strsql;

???????? private void Page_Load(object sender, System.EventArgs e)

???????? {

???????????? // 在此處放置用戶代碼以初始化頁面

???????????? string strconn= ConfigurationSettings.AppSettings["dsn"];

???????????? cn=new SqlConnection(strconn);?

???????????? if(!IsPostBack)

????????????????? Bindgrid();

???????? }

???????? #region Web Form Designer generated code

???????? override protected void OnInit(EventArgs e)

???????? {

???????????? //

???????????? // CODEGEN:該調用是 ASP.NET Web 窗體設計器所必需的。

???????????? //

???????????? InitializeComponent();

???????????? base.OnInit(e);

???????? }

????????

???????? /// <summary>

???????? /// 設計器支持所需的方法 - 不要使用代碼編輯器修改

???????? /// 此方法的內容。

???????? /// </summary>

???????? private void InitializeComponent()

???????? {???

???????????? this.Btn_search.Click += new System.EventHandler(this.Btn_search_Click);

???????????? this.Btn_exit.Click += new System.EventHandler(this.Btn_exit_Click);

???????????? this.Load += new System.EventHandler(this.Page_Load);

???????? }

???????? #endregion

???????? public void DataGrid_Page(object sender,DataGridPageChangedEventArgs e)

???????? {

???????????? Dgd_course.CurrentPageIndex=e.NewPageIndex;

???????????? Bindgrid();

???????? }

???????? public void DataGrid_edit(object sender,DataGridCommandEventArgs e)

???????? {

????????????

???????????? Dgd_course.EditItemIndex=(int)e.Item.ItemIndex;

???????????? Bindgrid();

????????????

???????? }

???????? public void DataGrid_cancel(object sender,DataGridCommandEventArgs e)

???????? {

????????????

???????????? Dgd_course.EditItemIndex=-1;

???????????? Bindgrid();

????????????

???????? }

???????? public void DataGrid_delete(object sender,DataGridCommandEventArgs e)

???????? {

????????????

???????????? string strsql="delete from course where Course_id=@course_id";

???????????? SqlCommand cm=new SqlCommand(strsql,cn);

???????????? cm.Parameters.Add(new SqlParameter("@course_id",SqlDbType.VarChar,50));

???????????? cm.Parameters["@course_id"].Value=Dgd_course.DataKeys[(int)e.Item.ItemIndex];

???????????? cm.Connection.Open();

???????????? try

???????????? {

????????????????? cm.ExecuteNonQuery();

????????????????? Lbl_note.Text="刪除成功";

?????????????????

???????????? }

???????????? catch(SqlException)

???????????? {

????????????????? Lbl_note.Text="刪除失敗";

????????????????? Lbl_note.Style["color"]="red";

???????????? }

???????????? cm.Connection.Close();?????????

???????????? Bindgrid();

???????? }

???????? 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.Add(new SqlParameter("@Course_name",SqlDbType.VarChar,50));

???????????? 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 SqlParameter("@Course_id",SqlDbType.VarChar,50));

???????????? string colvalue=((TextBox)e.Item.Cells[1].Controls[0]).Text;

???????????? cm.Parameters["@Course_name"].Value=colvalue;

???????????? colvalue=((TextBox)e.Item.Cells[2].Controls[0]).Text;

???????????? cm.Parameters["@Course_period"].Value=colvalue;

???????????? colvalue=((TextBox)e.Item.Cells[3].Controls[0]).Text;

???????????? cm.Parameters["@Course_credit"].Value=colvalue;

???????????? colvalue=((TextBox)e.Item.Cells[4].Controls[0]).Text;

???????????? cm.Parameters["@Course_kind"].Value=colvalue;

???????? ??? cm.Parameters["@Course_id"].Value=Dgd_course.DataKeys[(int)e.Item.ItemIndex];

???????????? cm.Connection.Open();

???????????? try

???????????? {

????????????????? cm.ExecuteNonQuery();

????????????????? Lbl_note.Text="編輯成功";

????????????????? Dgd_course.EditItemIndex=-1;

???????????? }

???????????? catch(SqlException)

???????????? {

????????????????? Lbl_note.Text="編輯失敗";

????????????????? Lbl_note.Style["color"]="red";

???????????? }

???????????? cm.Connection.Close();????

???????????? Bindgrid();

????????????

???????? }

???????? public void Bindgrid()

???????? {

???????????? strsql="select * from course";

???????????? SqlDataAdapter da=new SqlDataAdapter(strsql,cn);

???????????? DataSet ds=new DataSet();

???????????? da.Fill(ds);

??? ???????? Dgd_course.DataSource=ds;

???????????? Dgd_course.DataBind();

???????? }

???????? private void Lbtn_addcourse_Click(object sender, System.EventArgs e)

???????? {

???????????? Response.Redirect("addcourse.aspx");

???????? }

???????? private void Btn_exit_Click(object sender, System.EventArgs e)

???????? {

???????????? Response.Redirect("default.aspx");

???????? }

????????

???????? 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+"'";

???????????? SqlDataAdapter da=new SqlDataAdapter(strsql,cn);

???????????? DataSet ds=new DataSet();

???????????? da.Fill(ds);

???????????? Dgd_course.DataSource=ds;

???????????? Dgd_course.DataBind();

???????? }

???????? private void Lbtn_assign_Click(object sender, System.EventArgs e)

???????? {

???????????? Response.Redirect("assigncourse.aspx");

???????? }

??? }

}

8.5錄入成績頁面

? 在錄入成績頁面的初始化事件Page_Load()事件對“課程”下拉列表框控件Ddl_course進行初始綁定,使其顯示該學生已選的所有課程信息。“錄入”按鈕的Click事件調用數據庫操作語句,對數據庫中相應學生,成績關系表中的成績信息進行更新。

主要相關代碼如下:

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Data.SqlClient;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Configuration;

namespace sms

{

??? /// <summary>

??? /// addgrade 的摘要說明。

??? /// </summary>

??? public class addgrade : System.Web.UI.Page

??? {

???????? protected System.Web.UI.WebControls.TextBox Tbx_studentid;

???????? protected System.Web.UI.WebControls.Button Btn_add;

???????? protected System.Web.UI.WebControls.Label Lbl_note;

???????? protected System.Web.UI.WebControls.Button Btn_exit;

???????? protected System.Web.UI.WebControls.TextBox Tbx_term;

???????? protected System.Web.UI.WebControls.CustomValidator Cv_id;

???????? protected System.Web.UI.WebControls.DropDownList Ddl_course;

???????? protected System.Web.UI.WebControls.TextBox Tbx_grade;

??? ??? SqlConnection cn;

???????? private void Page_Load(object sender, System.EventArgs e)

???????? {

???????????? string strconn= ConfigurationSettings.AppSettings["dsn"];

???????????? // 在此處放置用戶代碼以初始化頁面

???????????? cn=new SqlConnection(strconn);?

???????? }

???????? #region Web Form Designer generated code

???????? override protected void OnInit(EventArgs e)

???????? {

???????????? //

???????????? // CODEGEN:該調用是 ASP.NET Web 窗體設計器所必需的。

???????????? //

???????????? InitializeComponent();

???????????? base.OnInit(e);

???????? }

????????

???????? /// <summary>

???????? /// 設計器支持所需的方法 - 不要使用代碼編輯器修改

???????? /// 此方法的內容。

???????? /// </summary>

???????? private void InitializeComponent()

???????? {???

???????????? this.Tbx_studentid.TextChanged += new System.EventHandler(this.Tbx_studentid_TextChanged);

???????????? this.Cv_id.ServerValidate += new System.Web.UI.WebControls.ServerValidateEventHandler(this.Cv_id_ServerValidate);

???????????? this.Btn_add.Click += new System.EventHandler(this.Btn_add_Click);

???????????? this.Btn_exit.Click += new System.EventHandler(this.Btn_exit_Click);

???????????? this.Load += new System.EventHandler(this.Page_Load);

???????? }

???????? #endregion

???????? private void Btn_add_Click(object sender, System.EventArgs e)

???????? {

???????????? string strsql="update student_course set Student_grade=@Student_grade where Student_id=@Student_id and? Course_id=@Course_id and Course_year=@Course_year";

???????????? ?SqlCommand cm=new SqlCommand(strsql,cn);

???????????? ?cm.Parameters.Add(new SqlParameter("@Student_id",SqlDbType.VarChar,50));

???????????? ?cm.Parameters["@Student_id"].Value=Tbx_studentid.Text;

???????????? ?cm.Parameters.Add(new SqlParameter("@Course_id",SqlDbType.VarChar,50));

???????????? ?cm.Parameters["@Course_id"].Value=Ddl_course.SelectedItem.Value;

???????????? ?cm.Parameters.Add(new SqlParameter("@Course_year",SqlDbType.Char,10));

???????????? ?cm.Parameters["@Course_year"].Value=Tbx_term.Text;

???????????? cm.Parameters.Add(new SqlParameter("@Student_grade",SqlDbType.Int,4));

???????????? cm.Parameters["@Student_grade"].Value=Tbx_grade.Text;

???????????? ?cm.Connection.Open();

???????????? try

???????????? {

????????????????? cm.ExecuteNonQuery();

???????????? ??? Response.Redirect("grade_manage.aspx");

?????????????????

???????????? }

???????????? catch(SqlException)

???????????? {

????????????????? Lbl_note.Text="添加失敗";

????????????????? Lbl_note.Style["color"]="red";

???????????? }

???????????? ?cm.Connection.Close();????????

???????? ???

???????? }

????????

???????? private void Btn_exit_Click(object sender, System.EventArgs e)

???????? {

???????????? Response.Redirect("grade_manage.aspx");

???????? }

???????? private void Cv_id_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)

???????? {

???????????? string strconn= ConfigurationSettings.AppSettings["dsn"];

???????????? cn=new SqlConnection(strconn);

???????????? cn.Open();

???????????? string strsql="select * from student where Student_id='"+Tbx_studentid.Text+"'";

???????????? SqlCommand cm=new SqlCommand(strsql,cn);

???????????? SqlDataReader dr=cm.ExecuteReader();

???????????? if(dr.Read())

???????????? {

????????????????? args.IsValid=true;

???????????? }

???????????? else

???????????? {

????????????????? args.IsValid=false;

???????????? }

???????????? cn.Close();

????????

???????? }

???????? private void Tbx_studentid_TextChanged(object sender, System.EventArgs e)

???????? {??????? //課程名稱下拉列表框綁定

???????????? string strconn= ConfigurationSettings.AppSettings["dsn"];

???????????? SqlConnection cn0=new SqlConnection(strconn);

????????????????? cn0.Open ();

????????????????? string mysql1="select course.* from student_course,course where student_course.Student_id='"+Tbx_studentid.Text+"'and student_course.Course_id=course.Course_id";

????????????????? SqlCommand cm1=new SqlCommand? (mysql1,cn0);

????????????????? SqlDataReader dr1=cm1.ExecuteReader ();

????????????????? while(dr1.Read ())

????????????????? {

????????????????????? Ddl_course.Items .Add (new ListItem(dr1["Course_name"].ToString() ,dr1["Course_id"].ToString()) );

????????????????? }

????????????????? cn0.Close ();

????????????

???????? }

????????

??? }

}

8.6添加學生必修課頁面

?? ??在添加學生必修課頁面初始化事件Page_Load事件中將數據庫中的所有課程及班級信息分別綁定到DropDownList控件的Ddl_course和Ddl_class控件中,“確定”按鈕Btn_ok控件的Click()事件完成往數據庫學生-課程信息表中添加所選班級范圍下所有學生的相應課程選課記錄的任務。

主要相關代碼如下:

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Data.SqlClient;

using System.Configuration;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

namespace sms

{

??? /// <summary>

??? /// addstudentcourse 的摘要說明。

??? /// </summary>

??? public class addstudentcourse : System.Web.UI.Page

??? {

???????? protected System.Web.UI.WebControls.DropDownList Ddl_course;

???????? protected System.Web.UI.WebControls.DropDownList Ddl_class;

???????? protected System.Web.UI.WebControls.TextBox Tbx_year;

???????? protected System.Web.UI.WebControls.Button Btn_ok;

???????? protected System.Web.UI.WebControls.Label Lbl_note;

???????? protected System.Web.UI.WebControls.Button Btn_back;

??? ???

???????? private void Page_Load(object sender, System.EventArgs e)

???????? {

???????????? // 在此處放置用戶代碼以初始化頁面

???????????? string strconn= ConfigurationSettings.AppSettings["dsn"];

???????????? //連接本地計算機的sms數據庫

???????????? SqlConnection cn0= new SqlConnection (strconn);

???????????? if(!IsPostBack)

???????????? {

????????????????? //課程名稱下拉列表框綁定

????????????????? cn0.Open ();

????????????????? string mysql1="select * from course where Course_kind='0'or Course_kind='1'";

????????????????? SqlCommand cm1=new SqlCommand? (mysql1,cn0);

????????????????? SqlDataReader dr1=cm1.ExecuteReader ();

????????????????? while(dr1.Read ())

????????????????? {

????????????????????? Ddl_course.Items .Add (new ListItem(dr1["Course_name"].ToString() ,dr1["Course_id"].ToString()) );

????????????????? }

????????????????? cn0.Close ();

????????????????? //班級名稱下拉列表框綁定

????????????????? cn0.Open ();

????????????????? string mysql2="select * from class";

????????????????? SqlCommand cm2=new SqlCommand? (mysql2,cn0);

????????????????? SqlDataReader dr2=cm2.ExecuteReader ();???????????????

????????????????? while(dr2.Read ())

????????????????? {

????????????????????? Ddl_class.Items .Add (new ListItem(dr2["Class_name"].ToString() ,dr2["Class_id"].ToString()) );

????????????????? }

????????????????? cn0.Close ();

???????????? }

???????? }

???????? override protected void OnInit(EventArgs e)

???????? {

???????????? //

???????????? // CODEGEN:該調用是 ASP.NET Web 窗體設計器所必需的。

???????????? //

???????????? InitializeComponent();

???????????? base.OnInit(e);

???????? }

????????

???????? /// <summary>

???????? /// 設計器支持所需的方法 - 不要使用代碼編輯器修改

???????? /// 此方法的內容。

???????? /// </summary>

???????? private void InitializeComponent()

???????? {???

???????????? this.Btn_ok.Click += new System.EventHandler(this.Btn_ok_Click);

???????????? this.Btn_back.Click += new System.EventHandler(this.Btn_back_Click);

???????????? this.Load += new System.EventHandler(this.Page_Load);

???????? }

???????? #endregion

???????? private void Btn_ok_Click(object sender, System.EventArgs e)

???????? {

???????????? string strconn= ConfigurationSettings.AppSettings["dsn"];

???????????? SqlConnection cn= new SqlConnection (strconn);

???????????? cn.Open();

???????????? string strsql="insert into student_course(Student_id,Course_id,Course_year) (select Student_id,@Course_id,@Course_year from student where Student_classid=@classid) ";

???????????? SqlCommand cm=new SqlCommand(strsql,cn);

???????????? cm.Parameters.Add(new SqlParameter("@classid",SqlDbType.VarChar,50));

???????????? cm.Parameters["@classid"].Value=Ddl_class.SelectedItem.Value;

???????????? cm.Parameters.Add(new SqlParameter("@Course_id",SqlDbType.VarChar,50));

???????????? cm.Parameters["@Course_id"].Value=Ddl_course.SelectedItem.Value;

???????????? cm.Parameters.Add(new SqlParameter("@Class_id",SqlDbType.VarChar,50));

???????????? cm.Parameters["@Class_id"].Value=Ddl_class.SelectedItem.Value;

???????????? cm.Parameters.Add(new SqlParameter("@Course_year",SqlDbType.VarChar,50));

???????????? cm.Parameters["@Course_year"].Value=Tbx_year.Text;?????????

???????????? try

??? ???????? {

????????????????? cm.ExecuteNonQuery();

????????????????? Lbl_note.Text="添加成功,請返回";

?????????????????

???????????? }

???????????? catch(SqlException)

???????????? {

????????????????? Lbl_note.Text="添加失敗";

????????????????? Lbl_note.Style["color"]="red";

???????????? }??

???????????? cn.Close();

???????? }

???????? private void Btn_back_Click(object sender, System.EventArgs e)

???????? {

???????????? Response.Redirect("course.aspx");

???????? }

??? }

}

8.7成績管理頁面

成績管理頁面完成的功能比較多,包括按選定的條件進行限定條件的成績查詢。同時,也可以根據成績范圍對包含在該范圍中的學生成績作一統計,具體統計這門課的平均分,最高分,參加考試總人數以及優秀人數和不及格人數。此頁面的關鍵就在于根據條件生成SQL語句。當“查詢”“統計”操作被觸發,系統將完成對數據庫中多個表 的操作。

主要相關代碼如下:

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Data.SqlClient;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Configuration;

namespace sms

{

??? /// <summary>

??? /// grade_manage 的摘要說明。

??? /// </summary>

??? public class grade_manage : System.Web.UI.Page

??? {

???????? protected System.Web.UI.WebControls.DropDownList Ddl_way;

???????? protected System.Web.UI.WebControls.TextBox Tbx_name;

???????? protected System.Web.UI.WebControls.Button Btn_search;

???????? protected System.Web.UI.WebControls.DataGrid Dgd_grade;

???????? protected System.Web.UI.WebControls.LinkButton Link_addgrade;

??? ??? SqlConnection cn;

???????? protected System.Web.UI.WebControls.Label Lbl_note;

???????? protected System.Web.UI.WebControls.DropDownList Ddl_stat;

???????? protected System.Web.UI.WebControls.TextBox Tbx_area;

???????? protected System.Web.UI.WebControls.TextBox Tbx_classid;

???????? protected System.Web.UI.WebControls.DropDownList Ddl_content;

???????? protected System.Web.UI.WebControls.Button Btn_count;

???????? protected System.Web.UI.WebControls.TextBox Tbx_year;

???????? protected System.Web.UI.WebControls.Label Lbl_average;

???????? protected System.Web.UI.WebControls.Label Lbl_high;

???????? protected System.Web.UI.WebControls.Label Lbl_a;

???????? protected System.Web.UI.WebControls.Label Lbl_unpass;

???????? protected System.Web.UI.WebControls.Label Lbl_all;

???????? protected System.Web.UI.WebControls.TextBox Tbx_term;

???????? string strsql;

???????? private void Page_Load(object sender, System.EventArgs e)

???????? {

???????????? // 在此處放置用戶代碼以初始化頁面

???????????? string strconn= ConfigurationSettings.AppSettings["dsn"];

???????????? cn=new SqlConnection(strconn);?

???????? }

???????? #region Web Form Designer generated code

???????? override protected void OnInit(EventArgs e)

???????? {

???????????? //

???????????? // CODEGEN:該調用是 ASP.NET Web 窗體設計器所必需的。

???????????? //

???????????? InitializeComponent();

???????????? base.OnInit(e);

???????? }

????????

???????? /// <summary>

???????? /// 設計器支持所需的方法 - 不要使用代碼編輯器修改

???????? /// 此方法的內容。

???????? /// </summary>

???????? private void InitializeComponent()

???????? {???

???????????? this.Btn_count.Click += new System.EventHandler(this.Btn_count_Click);

???????????? this.Btn_search.Click += new System.EventHandler(this.Btn_search_Click);

???????????? this.Link_addgrade.Click += new System.EventHandler(this.Link_addgrade_Click);

???????????? this.Load += new System.EventHandler(this.Page_Load);

???????? }

???????? #endregion

????????

???????? private void Link_addgrade_Click(object sender, System.EventArgs e)

???????? {

???????????? Response.Redirect("addgrade.aspx");

???????? }

???????? private void Btn_search_Click(object sender, System.EventArgs e)

???????? {

???????????? Bindgrid();

???????? }

???????? public void DataGrid_Page(object sender,DataGridPageChangedEventArgs e)

???????? {

???????????? Dgd_grade.CurrentPageIndex=e.NewPageIndex;

???????????? Bindgrid();

???????? }

???????? public void Bindgrid()

???????? {

???????????? if(Ddl_way.SelectedItem.Text=="按學號")

???????????? {

????????????????? if(Tbx_term.Text=="所有")

????????????????? {

????????????????????? strsql="select student_course.ID,student_course.Student_id,student.Student_name,student.Student_classid,student_course.Course_id,course.Course_name,teacher.Teacher_name,student_course.Student_grade from course,student,teacher,student_course,teacher_course where student_course.Student_id='"+Tbx_name.Text+"' and student_course.Course_id=course.Course_id and student_course.Student_id=student.Student_id and student_course.Course_id=teacher_course.Course_id and teacher_course.Teacher_id=teacher.Teacher_id and teacher_course.Class_id=student.Student_classid";

????????????????? }

????????????????? else

????????????????? {

????????????????????? strsql="select student_course.ID,student_course.Student_id,student.Student_name,student.Student_classid,student_course.Course_id,course.Course_name,teacher.Teacher_name,student_course.Student_grade from course,student,teacher,student_course,teacher_course where student_course.Student_id='"+Tbx_name.Text+"' and Course_year='"+Tbx_term.Text+"' and student_course.Course_id=course.Course_id and student_course.Student_id=student.Student_id and student_course.Course_id=teacher_course.Course_id and teacher_course.Teacher_id=teacher.Teacher_id and teacher_course.Class_id=student.Student_classid";

????????????????? }

???????????? }

???????????? else if(Ddl_way.SelectedItem.Text=="按課號")

???????????? {

????????????????? if(Tbx_term.Text=="所有")

????????????????? {

????????????????????? strsql="select student_course.ID,student_course.Student_id,student.Student_name,student.Student_classid,student_course.Course_id,course.Course_name,teacher.Teacher_name,student_course.Student_grade from course,student,teacher,student_course,teacher_course where student_course.Course_id='"+Tbx_name.Text+"' and student_course.Course_id=course.Course_id and student_course.Student_id=student.Student_id and student_course.Course_id=teacher_course.Course_id and teacher_course.Teacher_id=teacher.Teacher_id and teacher_course.Class_id=student.Student_classid";

????????????????? }

????????????????? else

????????????????? {

????????????????????? strsql="select student_course.ID,student_course.Student_id,student.Student_name,student.Student_classid,student_course.Course_id,course.Course_name,teacher.Teacher_name,student_course.Student_grade from course,student,teacher,student_course,teacher_course where student_course.Course_id='"+Tbx_name.Text+"' and student_course.Course_year='"+Tbx_term.Text+"' and student_course.Course_id=course.Course_id and student_course.Student_id=student.Student_id and student_course.Course_id=teacher_course.Course_id and teacher_course.Teacher_id=teacher.Teacher_id and teacher_course.Class_id=student.Student_classid";

????????????????? }

???????????? }

???????????? else if(Ddl_way.SelectedItem.Text=="按課程名")

???????????? {

????????????????? if(Tbx_term.Text=="所有")

????????????????? {

????????????????????? strsql="select student_course.ID,student_course.Student_id,student.Student_name,student.Student_classid,student_course.Course_id,course.Course_name,teacher.Teacher_name,student_course.Student_grade from course,student,teacher,student_course,teacher_course where course.Course_name='"+Tbx_name.Text+"' and student_course.Course_id=course.Course_id and student_course.Student_id=student.Student_id and student_course.Course_id=teacher_course.Course_id and teacher_course.Teacher_id=teacher.Teacher_id and teacher_course.Class_id=student.Student_classid";

????????????

????????????????? }

????????????????? else

????????????????? {

????????????????????? strsql="select student_course.ID,student_course.Student_id,student.Student_name,student.Student_classid,student_course.Course_id,course.Course_name,teacher.Teacher_name,student_course.Student_grade from course,student,teacher,student_course,teacher_course where course.Course_name='"+Tbx_name.Text+"' and student_course.Course_year='"+Tbx_term.Text+"' and student_course.Course_id=course.Course_id and student_course.Student_id=student.Student_id and student_course.Course_id=teacher_course.Course_id and teacher_course.Teacher_id=teacher.Teacher_id and teacher_course.Class_id=student.Student_classid";

????????????????? }

???????????? }

???????????? else if(Ddl_way.SelectedItem.Text=="按班級")

???????????? {

????????????????? if(Tbx_term.Text=="所有")

????????????????? {

????????????????????? strsql="select student_course.ID,student_course.Student_id,student.Student_name,student.Student_classid,student_course.Course_id,course.Course_name,teacher.Teacher_name,student_course.Student_grade from course,student,teacher,student_course,teacher_course where student.Student_classid='"+Tbx_name.Text+"'and student_course.Course_id=course.Course_id and student_course.Student_id=student.Student_id and student_course.Course_id=teacher_course.Course_id and teacher_course.Teacher_id=teacher.Teacher_id and teacher_course.Class_id=student.Student_classid";

????????????

????????????????? }

????????????????? else

????????????????? {

????????????????????? strsql="select student_course.ID,student_course.Student_id,student.Student_name,student.Student_classid,student_course.Course_id,course.Course_name,teacher.Teacher_name,student_course.Student_grade from course,student,teacher,student_course,teacher_course where student.Student_classid='"+Tbx_name.Text+"' and student_course.Course_year='"+Tbx_term.Text+"' and student_course.Course_id=course.Course_id and student_course.Student_id=student.Student_id and student_course.Course_id=teacher_course.Course_id and teacher_course.Teacher_id=teacher.Teacher_id and teacher_course.Class_id=student.Student_classid";

????????????????? }

???????????? }

???????????? else if(Ddl_way.SelectedItem.Text=="按教師號")

???????????? {

????????????????? if(Tbx_term.Text=="所有")

????????????????? {

????????????????????? strsql="select student_course.ID,student_course.Student_id,student.Student_name,student.Student_classid,student_course.Course_id,course.Course_name,teacher.Teacher_name,student_course.Student_grade from course,student,teacher,student_course,teacher_course where teacher.Teacher_id='"+Tbx_name.Text+"' and student_course.Course_id=course.Course_id and student_course.Student_id=student.Student_id and student_course.Course_id=teacher_course.Course_id and teacher_course.Teacher_id=teacher.Teacher_id and teacher_course.Class_id=student.Student_classid";

????????????

????????????????? }

????????????????? else

????????????????? {

????????????????????? strsql="select student_course.ID,student_course.Student_id,student.Student_name,student.Student_classid,student_course.Course_id,course.Course_name,teacher.Teacher_name,student_course.Student_grade from course,student,teacher,student_course,teacher_course where teacher.Teacher_id='"+Tbx_name.Text+"' and student_course.Course_year='"+Tbx_term.Text+"' and student_course.Course_id=course.Course_id and student_course.Student_id=student.Student_id and student_course.Course_id=teacher_course.Course_id and teacher_course.Teacher_id=teacher.Teacher_id and teacher_course.Class_id=student.Student_classid";

????????????????? }

???????????? }

????????????

???????????? SqlCommand cm=new SqlCommand(strsql,cn);

???????????? cn.Open();

???????????? SqlDataReader dr=cm.ExecuteReader();

???????????? if(dr.Read())

???????????? {

????????????????? Dgd_grade.Visible=true;

????????????????? cn.Close();

????????????????? cn.Open();

????????????????? SqlDataAdapter da=new SqlDataAdapter(strsql,cn);

????????????????? DataSet ds=new DataSet();

????????????????? da.Fill(ds);

????????????????? Dgd_grade.DataSource=ds;

????????????????? Dgd_grade.DataBind();

???????????? }

???????????? else

???????????? {

????????????????? Dgd_grade.Visible=false;

????????????????? Lbl_note.Text="無紀錄!";

???????????? }

???????????? cn.Close();

???????? }

???????? public void DataGrid_cancel(object sender,DataGridCommandEventArgs e)

???????? {

????????????

???????????? Dgd_grade.EditItemIndex=-1;

???????????? Bindgrid();

????????????

???????? }

???????? public void DataGrid_edit(object sender,DataGridCommandEventArgs e)

???????? {

????????????

???????????? Dgd_grade.EditItemIndex=(int)e.Item.ItemIndex;

???????????? Bindgrid();

????????????

???????? }

???????? public void DataGrid_update(object sender,DataGridCommandEventArgs e)

???????? {

???????????? string strsql="update student_course set Student_grade=@Student_grade where Student_id=@Student_id and Course_id=@Course_id and ID=@id";

???????????? SqlCommand cm=new SqlCommand(strsql,cn);

???????????? cm.Parameters.Add(new SqlParameter("@Student_grade",SqlDbType.Int,4));

???????????? cm.Parameters.Add(new SqlParameter("@Course_id",SqlDbType.VarChar,50));

???????????? cm.Parameters.Add(new SqlParameter("@Student_id",SqlDbType.VarChar,50));

???????????? cm.Parameters.Add(new SqlParameter("@id",SqlDbType.Char,10));

???????????? string colvalue=((TextBox)e.Item.Cells[7].Controls[0]).Text;

???????????? cm.Parameters["@Student_grade"].Value=colvalue;

???????????? cm.Parameters["@Student_id"].Value=e.Item.Cells[1].Text;

???????????? cm.Parameters["@Course_id"].Value=e.Item.Cells[4].Text;

???????????? cm.Parameters["@Student_grade"].Value=colvalue;

???????????? cm.Parameters["@id"].Value=Dgd_grade.DataKeys[(int)e.Item.ItemIndex];

???????????? cm.Connection.Open();

???????????? try

???????????? {

????????????????? cm.ExecuteNonQuery();

????????????????? Lbl_note.Text="編輯成功";

????????????????? Dgd_grade.EditItemIndex=-1;

???????????? }

???????????? catch(SqlException)

???????????? {

????????????????? Lbl_note.Text="編輯失敗";

????????????????? Lbl_note.Style["color"]="red";

???????????? }

???????????? cm.Connection.Close();????

???????????? Bindgrid();

????????????

???????? }

????????

???????? public void DataGrid_delete(object sender,DataGridCommandEventArgs e)

???????? {

????????????

???????????? string strsql="delete from student_course where ID=@id";

???????????? SqlCommand cm=new SqlCommand(strsql,cn);

???????????? cm.Parameters.Add(new SqlParameter("@id",SqlDbType.Char,10));???????????

??????????? cm.Parameters["@id"].Value=Dgd_grade.DataKeys[(int)e.Item.ItemIndex];

???????????? cm.Connection.Open();

???????????? try

???????????? {

????????????????? cm.ExecuteNonQuery();

????????????????? Lbl_note.Text="刪除成功";

?????????????????

???????????? }

???????????? catch(SqlException)

???????????? {

????????????????? Lbl_note.Text="刪除失敗";

????????????????? Lbl_note.Style["color"]="red";

???????????? }

???????????? cm.Connection.Close();?????????

???????????? Bindgrid();

???????? }

???????? private void Btn_count_Click(object sender, System.EventArgs e)

???????? {

???????????? if(Ddl_stat.SelectedItem.Value=="系別")

???????????? {

?????????????????????

???????????? ?? if(Ddl_content.SelectedItem.Text=="總人數")

???????????? ?? {

????????????????? ?? 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 and student.Student_classid=class.Class_id and class.Class_department='"+Tbx_area.Text+"' ";

???????????? ?? }

???????????? ?? else if(Ddl_content.SelectedItem.Text=="優秀人數")

???????????? ?? {

????????????????? ?? 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 and student.Student_classid=class.Class_id and class.Class_department='"+Tbx_area.Text+"'and Student_grade>=85 ";

???????????? ?? }

???????????? ?? else if(Ddl_content.SelectedItem.Text=="不及格人數")

???????????? ?? {

????????????????? ?? 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 and student.Student_classid=class.Class_id and class.Class_department='"+Tbx_area.Text+"'and Student_grade<60 ";

???????????? ?? }

????????????????? else

???????????? ?? {

????????????????? ?strsql="select AVG(Student_grade),MAX(Student_grade) 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+"' ";

???????????? ?? }

???????????? }

???????????? else if(Ddl_stat.SelectedItem.Value=="學院")

???????????? {

????????????????? if(Ddl_content.SelectedItem.Text=="總人數")

????????????????? {

????????????????????? 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 and student.Student_classid=class.Class_id and class.Class_college='"+Tbx_area.Text+"' ";

????????????????? }

????????????????? else if(Ddl_content.SelectedItem.Text=="優秀人數")

????????????????? {

????????????????????? 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 and student.Student_classid=class.Class_id and class.Class_college='"+Tbx_area.Text+"'and Student_grade>=85 ";

????????????????? }

????????????????? else if(Ddl_content.SelectedItem.Text=="不及格人數")

????????????????? {

????????????????????? 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 and student.Student_classid=class.Class_id and class.Class_college='"+Tbx_area.Text+"'and Student_grade<60 ";

????????????????? }

????????????????? else

????????????????? {

????????????????????????? strsql="select AVG(Student_grade),MAX(Student_grade) 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_college='"+Tbx_area.Text+"' ";

????????????????? }

?????????????????

?????????????????

???????????? }

???????????? else if(Ddl_stat.SelectedItem.Value=="班級")

???????????? {

????????????????? if(Ddl_content.SelectedItem.Text=="總人數")

????????????????? {

????????????????????? strsql="select AVG(Student_grade),MAX(Student_grade),COUNT(*) from student_course,student 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='"+Tbx_area.Text+"'";

????????????????? }

????????????????? else if(Ddl_content.SelectedItem.Text=="優秀人數")

????????????????? {

????????????????? strsql="select AVG(Student_grade),MAX(Student_grade),COUNT(*) from student_course,student 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='"+Tbx_area.Text+"'and Student_grade>=85";

????????????????? }

????????????????? else if(Ddl_content.SelectedItem.Text=="不及格人數")

?????????????????? {strsql="select AVG(Student_grade),MAX(Student_grade),COUNT(*) from student_course,student 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='"+Tbx_area.Text+"'and Student_grade<60";

????????????????? }

????????????????? else

????????????????? {

??????????????????? strsql="select AVG(Student_grade),MAX(Student_grade) from student_course,student 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='"+Tbx_area.Text+"'";

????????????????? }

?????????????????????

?????????????????

???????????? }

???????????? SqlCommand cm=new SqlCommand(strsql,cn);

???????????? cn.Open();

???????????? SqlDataReader dr=cm.ExecuteReader();

???????????? if(dr.Read())

???????????? {

????????????????? if(Ddl_content.SelectedItem.Text=="均分")

????????????????? {

????????????????????? Lbl_average.Visible=true;

????????????????????? Lbl_average.Text="平均分為:"+dr[0].ToString();

????????????????? }

????????????????? else if(Ddl_content.SelectedItem.Text=="最高分")

????????????????? {

????????????????????? Lbl_high.Visible=true;

????????????????????? Lbl_high.Text="最高分為:"+dr[1].ToString();

????????????????? }

????????????????? else if(Ddl_content.SelectedItem.Text=="總人數")

????????????????? {

????????????????????? Lbl_all.Visible=true;

????????????????????? Lbl_all.Text="總人數為:"+dr[2].ToString();

????????????????? }

????????????????? else if(Ddl_content.SelectedItem.Text=="優秀人數")

????????????????? {

????????????????????? Lbl_a.Visible=true;

????????????????????? Lbl_a.Text="優秀人數為:"+dr[2].ToString();

????????????????? }

????????????????? else if(Ddl_content.SelectedItem.Text=="不及格人數")

????????????????? {

????????????????????????? Lbl_unpass.Visible=true;

????????????????????? Lbl_unpass.Text="不及格人數為:"+dr[2].ToString();

????????????????? }

????????????????? else

????????????????? {Lbl_note.Text="無此信息";

????????????????? }

????????????????? cn.Close();

???????????? }

???????????? ?

???????? }

????????

??? }

}

8.8學生選課管理頁面

學生選課管理頁面窗體所示,學生選課后需要管理員進一步確認管理,來確定最終選課信息。

主要相關代碼如下:

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Data.SqlClient;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Configuration;

namespace sms

{

??? /// <summary>

??? /// student_course 的摘要說明。

??? /// </summary>

??? public class student_course : System.Web.UI.Page

??? {

???????? protected System.Web.UI.WebControls.Button Btn_student;

???????? protected System.Web.UI.WebControls.DataGrid Dgd_sort;

???????? protected System.Web.UI.WebControls.Label Lbl_all;

???????? protected System.Web.UI.WebControls.TextBox Tbx_year;

???????? protected System.Web.UI.WebControls.Label Lbl_note;

???????? protected System.Web.UI.WebControls.Button Btn_exit;

???????? protected System.Web.UI.WebControls.DropDownList Ddl_course;

???????? protected System.Web.UI.WebControls.DropDownList Ddl_teacher;

??? ??? SqlConnection cn;

???????? private void Page_Load(object sender, System.EventArgs e)

???????? {?? //教師名稱下拉列表框綁定

???????????? string strconn= ConfigurationSettings.AppSettings["dsn"];

???????????? //連接本地計算機的sms數據庫

???????????? SqlConnection cn0= new SqlConnection (strconn);

???????????? if(!IsPostBack)

???????????? {

????????????????? 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(dr0["Teacher_name"].ToString(),dr0["Teacher_id"].ToString()) );

????????????????? }

????????????????? cn0.Close ();

????????????????? //課程名稱下拉列表框綁定

????????????????? 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(dr1["Course_name"].ToString() ,dr1["Course_id"].ToString()) );

????????????????? }

????????????????? cn0.Close ();

???????????? }

???????????? // 在此處放置用戶代碼以初始化頁面

???????????? cn=new SqlConnection(strconn);

????????????

???????? }

???????? #region Web Form Designer generated code

???????? override protected void OnInit(EventArgs e)

???????? {

???????????? //

???????????? // CODEGEN:該調用是 ASP.NET Web 窗體設計器所必需的。

???????????? //

???????????? InitializeComponent();

???????????? base.OnInit(e);

???????? }

????????

???????? /// <summary>

???????? /// 設計器支持所需的方法 - 不要使用代碼編輯器修改

???????? /// 此方法的內容。

???????? /// </summary>

???????? private void InitializeComponent()

???????? {???

???????????? this.Btn_student.Click += new System.EventHandler(this.Btn_student_Click);

???????????? this.Btn_exit.Click += new System.EventHandler(this.Btn_exit_Click);

???????????? this.Load += new System.EventHandler(this.Page_Load);

???????? }

???????? #endregion

???????? private void Btn_student_Click(object sender, System.EventArgs e)

???????? { Bindgrid();???? ?

???????? }

???????? public void DataGrid_delete(object sender,DataGridCommandEventArgs e)

???????? {

????????????

???????????? string strsql="delete from student_course where ID=@id";

???????????? SqlCommand cm=new SqlCommand(strsql,cn);

???????????? cm.Parameters.Add(new SqlParameter("@ID",SqlDbType.BigInt,8));

???????????? cm.Parameters["@id"].Value=Dgd_sort.DataKeys[(int)e.Item.ItemIndex];

???????????? cm.Connection.Open();

???????????? try

???????????? {

????????????????? cm.ExecuteNonQuery();

????????????????? Lbl_note.Text="刪除成功";

?????????????????

???????????? }

???????????? catch(SqlException)

???????????? {

????????????????? Lbl_note.Text="刪除失敗";

????????????????? Lbl_note.Style["color"]="red";

???????????? }

???????????? cm.Connection.Close();?????????

???????????? Bindgrid();

???????? }

????????

???????? public void Bindgrid()

???????? {

??????????? string strsql="select student_course.ID,student.Student_id,student.Student_classid from student_course,student,teacher_course where student_course.Course_id='"+Ddl_course.SelectedItem.Value+"' and student_course.Course_year=teacher_course.Course_year and student_course.Course_year='"+Tbx_year.Text+"'and teacher_course.Teacher_id='"+Ddl_teacher.SelectedItem.Value+"'and student_course.Course_id=teacher_course.Course_id and student.Student_id=student_course.Student_id";

???????????? SqlDataAdapter da=new SqlDataAdapter(strsql,cn);

???????????? DataSet ds=new DataSet();

???????????? da.Fill(ds);

???????????? Dgd_sort.DataSource=ds;

???????????? Dgd_sort.DataBind();

???????????? string strsq="select COUNT(*) from student_course,student,teacher_course where student_course.Course_id='"+Ddl_course.SelectedItem.Value+"' and ?student_course.Course_year=teacher_course.Course_year and student_course.Course_year='"+Tbx_year.Text+"'and teacher_course.Teacher_id='"+Ddl_teacher.SelectedItem.Value+"'and student_course.Course_id=teacher_course.Course_id and student.Student_id=student_course.Student_id";

???????????? SqlCommand cm1=new SqlCommand(strsq,cn);?????

???????????? cn.Open();

???????????? SqlDataReader dr=cm1.ExecuteReader();

???????????? if(dr.Read())

???????????? {

????????????????????? Lbl_all.Text="選課總人數為:"+dr[0].ToString();

???????????? }

???????????? else

???????????? {

????????????????? Lbl_all.Text="無人選此課";

???????????? }

???????????? cn.Close();

???????? }

???????? private void Btn_exit_Click(object sender, System.EventArgs e)

???????? {

???????????? Response.Redirect("default.aspx");

???????? }

????????

??? }

}

8.9學生選課頁面

學生可進入學生選課頁面瀏覽本學期待選課程的信息,可以設定查詢條件,可以根據選此課的人數,教師等情況來確定是否選擇此課。

主要相關代碼如下:

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Data.SqlClient;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Configuration;

namespace sms

{

??? /// <summary>

??? /// sortcourse 的摘要說明。

??? /// </summary>

??? public class sortcourse : System.Web.UI.Page

??? {

???????? protected System.Web.UI.WebControls.DataGrid Dgd_sort;

???????? protected System.Web.UI.WebControls.TextBox Tbx_courseid;

???????? protected System.Web.UI.WebControls.TextBox Tbx_year;

???????? protected System.Web.UI.WebControls.Button Btn_look;

???????? protected System.Web.UI.WebControls.TextBox Tbx_teacher;

???????? protected System.Web.UI.WebControls.TextBox Tbx_term;

???????? protected System.Web.UI.WebControls.Button Btn_sort;

???????? protected System.Web.UI.WebControls.Label Lbl_all;

???????? protected System.Web.UI.WebControls.Label Lbl_note;

???????? protected System.Web.UI.WebControls.Button Btn_yes;

???????? protected System.Web.UI.WebControls.Button Btn_no;

???????? protected System.Web.UI.WebControls.Panel Pn_yes;

???????? protected System.Web.UI.WebControls.CustomValidator Cv_course;

???????? protected System.Web.UI.WebControls.RequiredFieldValidator Rfv_year;

???????? SqlConnection cn;

???????? protected System.Web.UI.WebControls.DropDownList Ddl_course;string strsql;

???????? private void Page_Load(object sender, System.EventArgs e)

???????? {?? string strconn= ConfigurationSettings.AppSettings["dsn"];

???????????? cn=new SqlConnection(strconn);?

???????????? if(!IsPostBack)

???????????? {

????????????????? //課程名稱下拉列表框綁定

?????????????????

????????????????? SqlConnection cn0=new SqlConnection(strconn);

????????????????? cn0.Open ();

????????????????? string mysql1="select * from course where Course_kind='2'";

????????????????? SqlCommand cm1=new SqlCommand (mysql1,cn0);

????????????????? SqlDataReader dr1=cm1.ExecuteReader ();

????????????????? Ddl_course.Items .Add (new ListItem("","") );

????????????????? while(dr1.Read ())

????????????????? {

????????????????????? Ddl_course.Items .Add (new ListItem(dr1["Course_name"].ToString() ,dr1["Course_id"].ToString()) );

????????????????? }

????????????????? cn0.Close ();

?????????????????

???????????? }

???????? }

???????? #region Web Form Designer generated code

???????? override protected void OnInit(EventArgs e)

???????? {

???????????? //

???????????? // CODEGEN:該調用是 ASP.NET Web 窗體設計器所必需的。

???????????? //

???????????? InitializeComponent();

???????????? base.OnInit(e);

???????? }??????? /// <summary>

???????? /// 設計器支持所需的方法 - 不要使用代碼編輯器修改

???????? /// 此方法的內容。

???????? /// </summary>

???????? private void InitializeComponent()

???????? {???

???????????? this.Btn_sort.Click += new System.EventHandler(this.Btn_sort_Click);

???????????? this.Cv_course.ServerValidate += new System.Web.UI.WebControls.ServerValidateEventHandler(this.Cv_course_ServerValidate);

???????????? this.Btn_yes.Click += new System.EventHandler(this.Btn_yes_Click);

???????????? this.Btn_no.Click += new System.EventHandler(this.Btn_no_Click);

???????????? this.Btn_look.Click += new System.EventHandler(this.Btn_look_Click);

???????????? this.Load += new System.EventHandler(this.Page_Load);

???????? }

???????? #endregion

???????? private void Btn_sort_Click(object sender, System.EventArgs e)

???????? {

????????????

???????????? string strsq="select COUNT(Student_id) from student_course where Course_id='"+Tbx_courseid.Text+"' and Course_year='"+Tbx_year.Text+"'";

???????????? SqlCommand cm1=new SqlCommand(strsq,cn);?????

???????????? cn.Open();

???????????? SqlDataReader dr=cm1.ExecuteReader();

???????????? if(dr.Read())

???????????? {

????????????????? Lbl_all.Text="選此課總人數為:"+dr[0].ToString();

??????????? }

???????????? else

???????????? {

????????????????? Lbl_all.Text="無人選此課";

???????????? }

???????????? Pn_yes.Visible=true;

???????????? cn.Close();

????????

???????? }

??? ?

???????? private void Btn_yes_Click(object sender, System.EventArgs e)

???????? {

???????? ??? strsql="insert into student_course(Student_id,Course_id,Course_year) values(@Student_id,@Course_id,@Course_year)";

???????????? SqlCommand cm=new SqlCommand(strsql,cn);

???????????? cm.Parameters.Add(new SqlParameter("@Student_id",SqlDbType.VarChar,50));

???????????? cm.Parameters.Add(new SqlParameter("@Course_id",SqlDbType.VarChar,50));

???????????? cm.Parameters.Add(new SqlParameter("@Course_year",SqlDbType.VarChar,50));

???????????? cm.Parameters["@Student_id"].Value=Session["User_id"].ToString();

???????????? cm.Parameters["@Course_id"].Value=Tbx_courseid.Text;

???????????? cm.Parameters["@Course_year"].Value=Tbx_year.Text;

???????????? cn.Open();

???????????? try

???????????? {

????????????????? cm.ExecuteNonQuery();

???????????? }

???????????? catch(SqlException)

???????????? {

????????????????? Lbl_note.Text="添加失敗!";

???????????? }

???????????

???????????? cn.Close();

????????

???????? }

???????? private void Btn_no_Click(object sender, System.EventArgs e)

???????? {

???????? ?Lbl_all.Text="請重新選擇";

???????? }

???????? private void Cv_course_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)

???????? {???????????

???????????? cn.Open();

???????????? strsql="select * from course where Course_id='"+Tbx_courseid.Text+"'";

???????????? SqlCommand cm=new SqlCommand(strsql,cn);

???????????? SqlDataReader dr=cm.ExecuteReader();

???????????? if(dr.Read())

???????????? {

????????????????? args.IsValid=true;

???????????? }

???????????? else

???????????? {

????????????????? args.IsValid=false;

???????????? }

???????????? cn.Close();

???????? }

???????? private void Btn_look_Click(object sender, System.EventArgs e)

???????? {

???????????? if(Ddl_course.SelectedItem.Text=="")

???????????? {

????????????????? if(Tbx_teacher.Text=="")

????????????????? {strsql="select course.Course_name,course.Course_id,teacher.Teacher_name,course.Course_credit,course.Course_period from course,teacher,teacher_course where teacher_course.Course_year='"+Tbx_term.Text+"' and teacher_course.Course_id=course.Course_id and teacher_course.Teacher_id=teacher.Teacher_id";

????????????????? }

????????????????? else

????????????????? {

????????????????? strsql="select course.Course_name,course.Course_id,teacher.Teacher_name,course.Course_credit,course.Course_period from course,teacher,teacher_course where teacher_course.Course_year='"+Tbx_term.Text+"' and teacher_course.Course_id=course.Course_id and teacher_course.Teacher_id=teacher.Teacher_id and teacher.Teacher_name='"+Tbx_teacher.Text+"'";

????????????

????????????????? }

???????????? }

???????????? else

???????????? {

????????????????? if(Tbx_teacher.Text=="")

????????????????? {

????????????????? strsql="select course.Course_name,course.Course_id,teacher.Teacher_name,course.Course_credit,course.Course_period from course,teacher,teacher_course where teacher_course.Course_year='"+Tbx_term.Text+"' and teacher_course.Course_id=course.Course_id and teacher_course.Teacher_id=teacher.Teacher_id and course.Course_name='"+Ddl_course.SelectedItem.Text+"'";

????????????

????????????????? }

????????????????? else

????????????????? {

????????????????????? strsql="select course.Course_name,course.Course_id,teacher.Teacher_name,course.Course_credit,course.Course_period from course,teacher,teacher_course where teacher_course.Course_year='"+Tbx_term.Text+"' and teacher_course.Course_id=course.Course_id and teacher_course.Teacher_id=teacher.Teacher_id and course.Course_name='"+Ddl_course.SelectedItem.Text+"' and teacher.Teacher_name='"+Tbx_teacher.Text+"'";

????????????

????????????????? }

???????????? }

???????????? SqlDataAdapter da=new SqlDataAdapter(strsql,cn);

???????????? DataSet ds=new DataSet();

???????????? da.Fill(ds);

???????????? Dgd_sort.DataSource=ds;

???????????? Dgd_sort.DataBind();

???????? }

????????

??? }

}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/web/10335.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10335.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10335.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微信投票源碼系統至尊版 吸粉變現功能二合一

源碼簡介 微信投票系統在營銷和社交互動中發揮著多方面的作用&#xff0c;它能夠提升用戶的參與度和品牌曝光度&#xff0c;還是一種有效的數據收集、營銷推廣和民主決策工具。 分享一款微信投票源碼系統至尊版&#xff0c;集吸粉變現功能二合一&#xff0c;全網獨家支持禮物…

已經安裝tensorflow,仍報錯No module named ‘tensorflow‘

在安裝某些python虛擬環境的教程文章中&#xff0c;經常看到有評論區說安裝了但是調用顯示無模塊&#xff0c;例如pytorch和tensorflow等等。 其實跟之前我寫過的一篇文章解決方法類似&#xff0c;就是python項目中需要應用哪個虛擬環境&#xff0c;這個項目的python解釋器就選…

企業網絡需求及適合的解決方案

近年來&#xff0c;企業網絡通信需求可謂五花八門&#xff0c;變幻莫測。它不僅為企業的生產、辦公、研發、銷售提供全面賦能&#xff0c;同時也讓企業業務規模變大成為了可能。 在當前的技術格局下&#xff0c;中大型企業常見的技術方案有很多&#xff0c;而同時也有各自不可替…

商務英語口語成人考級外語培訓之BECkao考級口語篇

在口語考試中&#xff0c;不管實際內容你能說出多少&#xff0c;但準備一些套話&#xff0c;至少還能撐撐場子你們說是不是&#xff1f; 內容闡述 描述事實 1.Im going to describe/present/explain/give you some information about... 2.Id like to say a few words about...…

德國儲能項目鋰電池儲能集裝箱突發火災:安全挑戰再引關注

2024年4月27日&#xff0c;德國尼爾莫爾商業區的一起鋰電池儲能集裝箱火災事件引起了全球關注。這起事故不僅導致兩名消防員在救援過程中受傷&#xff0c;更暴露了儲能系統在安全領域亟待解決的重要問題。 根據德國消防隊的出警記錄&#xff0c;火災發生在晚上9點前不久。消防人…

機器學習算法應用——神經網絡回歸任務、神經網絡分類任務

神經網絡回歸任務&#xff08;4-3&#xff09; 神經網絡回歸任務&#xff0c;通常指的是使用神經網絡模型進行回歸分析。回歸分析是一種統計學方法&#xff0c;用于研究一個或多個自變量&#xff08;預測變量&#xff09;與一個因變量&#xff08;響應變量&#xff09;之間的關…

漲薪技術 —— 搞定Appium工作中常見應用操作!

前言 Appium 是一個開源、跨平臺的自動化測試工具&#xff0c;用于測試原生和輕量移動應用&#xff0c;支持 iOS, Android 和 FirefoxOS 平臺。此工具在測試工作中也較長用到&#xff0c;接下來給大家介紹日常中的操作。 1、應用操作 1.1獲取應用的包名和界面名 當我們從一…

日報表定時任務優化歷程

報表需求背景 報表是一個很常見的需求&#xff0c;在項目中后期往往會需要加多種維度的一些統計信息&#xff0c;今天就來談談上線近10個月后的一次報表優化優化之路&#xff08;從一天報表跑需要五分鐘&#xff0c;優化至秒級&#xff09; 需求&#xff1a;對代理商進行日統計…

基礎I/O:文件系統調用接口

文章目錄 文件系統調用接口open系統調用接口和C語言封裝文件描述符fd重定向 文件系統調用接口 open NAME//打開、創建 - 打開并可能創建文件或設備open, creat - open and possibly create a file or deviceSYNOPSIS#include <sys/types.h>#include <sys/stat.h>…

【C++算法】隊列相關經典算法題

1. N叉樹的層序遍歷 首先我們遇到這個題目&#xff0c;沒有任何思路&#xff0c;我們就可以來模擬一下層序的流程&#xff0c;首先我們肯定是訪問根節點1&#xff0c;訪問之后呢就是訪問下一層的最左節點3&#xff0c;此時第一層的節點1已經訪問過了就可以不要了&#xff0c;然…

[GESP樣題 四級] 填幻方和幸運數

B3940 [GESP樣題 四級] 填幻方 題目 在一個NN 的正方形網格中&#xff0c;每個格子分別填上從 1 到 NN 的正整數&#xff0c;使得正方形中任一行、任一列及對角線的幾個數之和都相等&#xff0c;則這種正方形圖案就稱為“幻方”&#xff08;輸出樣例中展示了一個33 的幻方&am…

ICode國際青少年編程競賽- Python-4級訓練場-嵌套for循環練習

ICode國際青少年編程競賽- Python-4級訓練場-嵌套for循環練習 1、 for i in range(3):Spaceship.step(4)for j in range(4):Dev.step(2)Dev.turnRight()Spaceship.turnLeft()Spaceship.step(4)Spaceship.turnRight()2、 for i in range(4):Spaceship.step(6)for j in range(3):…

Nginx或Tengine服務器配置SSL證書

目錄 前提條件 步驟一&#xff1a;下載SSL證書 步驟二&#xff1a;在Nginx服務器安裝證書 步驟三&#xff1a;驗證SSL證書是否配置成功 前提條件 已通過數字證書管理服務控制臺簽發證書SSL證書綁定的域名已完成DNS解析&#xff0c;即您的域名與主機IP地址相互映射已在Web服…

維修Philips IU22飛利浦四維多普勒彩超診斷儀 V6-2 L12-5 C8-4V深圳捷達工控維修

專為新時代而設計。專為更多而設計。 超聲波在抗擊 COVID-19 中的成像作用不斷擴大&#xff0c;并且對血管和心臟檢查的需求不斷增加&#xff0c;因此比以往任何時候都更有價值。飛利浦的超聲產品組合&#xff08;包括 EPIQ Elite&#xff09;為一線護理人員提供了寶貴的診斷支…

Intel處理器7z/XZ遇到 The failure in hardware

最近在使用Intel 12700H混合架構處理器的時候&#xff0c;一旦使用7z或者XZ算法壓縮東西就會出現如下的報錯&#xff1a; Internal Error: The failure in hardware (RAM or CPU), OS or program在檢查排除了內存、磁盤和OS的問題后&#xff0c;最終確定為Intel CPU的問題&…

Lazada、Shopee測評自養號,快速出單技巧全解析!

每個人都憧憬著自己的店鋪能夠擁有一款或多款引人注目的熱銷商品&#xff0c;這些商品不僅能為店鋪帶來可觀的收益&#xff0c;更重要的是它們能夠成為吸引顧客的強大磁石&#xff0c;顯著提升店鋪的整體流量。一旦這樣的爆款商品成功吸引顧客&#xff0c;其他產品也將隨之受到…

C++11:并發新紀元 —— 深入理解異步編程的力量(1)

hello &#xff01;大家好呀&#xff01; 歡迎大家來到我的Linux高性能服務器編程系列之《C11&#xff1a;并發新紀元 —— 深入理解異步編程的力量》&#xff0c;在這篇文章中&#xff0c;你將會學習到C新特性以及異步編程的好處&#xff0c;以及其如何帶來的高性能的魅力&…

Python:通過接口獲取公眾號的文章列表(但是開發文檔沒有這個接口)

&#x1f4da;博客主頁&#xff1a;knighthood2001 ?公眾號&#xff1a;認知up吧 &#xff08;目前正在帶領大家一起提升認知&#xff0c;感興趣可以來圍觀一下&#xff09; &#x1f383;知識星球&#xff1a;【認知up吧|成長|副業】介紹 ??感謝大家點贊&#x1f44d;&…

【LeetCode】每日一題:2960. 統計已測試設備

給你一個長度為 n 、下標從 0 開始的整數數組 batteryPercentages &#xff0c;表示 n 個設備的電池百分比。 你的任務是按照順序測試每個設備 i&#xff0c;執行以下測試操作&#xff1a; 如果 batteryPercentages[i] 大于 0&#xff1a; 增加 已測試設備的計數。 將下標在 [i…

力扣HOT100 - 35. 搜索插入位置

解題思路&#xff1a; 二分法模板 class Solution {public int searchInsert(int[] nums, int target) {int left 0;int right nums.length - 1;while (left < right) {int mid left ((right - left) >> 1);if (nums[mid] target)return mid;else if (nums[mid…