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();
}
}
}
相关文章:

ASP.NET学生信息管理系统
摘 要 本文介绍了在ASP.net环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。通过分析某一学校学生管理的不足,创建了一套行之有效的计算机管理学生的方案。文章介绍了学生管理信息系统的系统分析部分,…...

图片改大小尺寸怎么改?几招教你搞定图片修改
在社交媒体平台上发布图片时,调整图片的尺寸大小可以确保图片适合平台的要求,不同的社交媒体平台可能对图片的尺寸有不同的要求,通过调整图片尺寸,可以更加完美的展现出来,那么有没有比较简单的图片改大小的方法呢&…...

Scala编程入门:从零开始的完整教程
目录 引言环境准备创建第一个Scala项目基本语法高阶概念进阶资源结语 引言 Scala是一种强大的、静态类型的、多范式编程语言,它结合了面向对象和函数式编程的特点。本教程将指导您如何从零开始学习Scala,并搭建一个简单的开发环境。让我们开始探索Scala…...

Proxmox VE 8 SDN创建VLAN隔离用户网络
作者:田逸(formyz) 在上一篇文章中,我们用SDN的Simple对租户(用户)网络实现了隔离功能,但它有个限制,仅仅能在单个物理节点上进行通信,而不能跨越物理节点(除…...

API低代码平台介绍3-异构数据源的数据查询功能
异构数据源的数据查询功能 在上一篇文章中我们通过API平台定义了一个最基本的数据查询接口,本篇文章我们将上升难度,在原有接口的基础上,实现在MySQL数据库和Oracle数据库同时进行数据查询。 什么场景会需要同时对异构数据源进行查询&…...

【Linux】-网络请求和下载、端口[6]
目录 一、网络请求和下载 1、ping命令 2、wget命令 3、curl命令 二、端口 1、虚拟端口 2、查看端口占用 一、网络请求和下载 1、ping命令 可以通过ping命令,检查指定的网络服务器是否可联通状态 语法:ping [ -c num ] ip或主机名 选项&…...

Github2024-05-10开日报 Top10
根据Github Trendings的统计,今日(2024-05-10统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目4TypeScript项目4JavaScript项目1Lua项目1C项目1Rust项目1Dart项目1 RustDesk: 用Rust编写的开源远…...

2016-2021年全国范围的2.5m分辨率的建筑屋顶数据
一、论文介绍 摘要:大规模且多年的建筑屋顶面积(BRA)地图对于解决政策决策和可持续发展至关重要。此外,作为人类活动的细粒度指标,BRA可以为城市规划和能源模型提供帮助,为人类福祉带来好处。然而…...

Gitea 上传用户签名
在 Gitea 的用户管理部分,有一个 SSH 和 GPG 的选项。 单击这个选项,可以在选项上添加 Key。 Key 的来源 如是 Windows 的用户,可以选择 Kleopatra 这个软件。 通过这个软件生成的 Key 的界面中有一个导出功能。 单击这个导出,…...

【原创】springboot+mysql物资库存管理系统设计与实现
个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…...

vulnhub靶场之FunBox-5
一.环境搭建 1.靶场描述 Lets separate the script-kids from script-teenies.Hint: The first impression is not always the right one!If you need hints, call me on twitter: 0815R2d2 Have fun...This works better with VirtualBox rather than VMwareThis works bett…...

1分钟搞定Pandas DataFrame创建与索引
1.DataFrame介绍 DataFrame 是一个【表格型】的数据结构,可以看作是【由Series组成的字典】(共用同一个索引)。DataFrame 由按一定顺序排列的多列数据组成。设计初衷是将 Series 的使用场景从一维扩展到多维。DataFrame 既有行索引ÿ…...

【贪心算法】哈夫曼编码Python实现
文章目录 [toc]哈夫曼编码不同编码方式对比前缀码构造哈夫曼编码哈夫曼算法的正确性贪心选择性质证明 最优子结构性质证明 总结 Python实现时间复杂性 哈夫曼编码 哈夫曼编码是广泛用于数据文件压缩的十分有效的编码方法,其压缩率通常为 20 % 20\% 20%到 90 % 90\%…...

【RAG 博客】RAG 应用中的 Routing
Blog:Routing in RAG-Driven Applications ⭐⭐⭐⭐ 根据用户的查询意图,在 RAG 程序内部使用 “Routing the control flow” 可以帮助我们构建更实用强大的 RAG 程序。路由模块的关键实现就是一个 Router,它根据 user query 的查询意图&…...

鸿蒙ArkUI:【编程范式:命令式->声明式】
命令式 简单讲就是需要开发用代码一步一步进行布局,这个过程需要开发全程参与。 开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 Objective-C ObjectiveC 复制代码 UIView *cardView …...

【练习2】
1.汽水瓶 ps:注意涉及多个输入,我就说怎么老不对,无语~ #include <cmath> #include <iostream> using namespace std;int main() {int n;int num,flag,kp,temp;while (cin>>n) {flag1;num0;temp0;kpn;while (flag1) {if(kp<2){if(…...

oracle 新_多种块大小的支持9i
oracle 新_多种块大小的支持 conn sys/sys as sysdba SHOW PARAMETER CACHE ALTER SYSTEM SET DB_CACHE_SIZE16M; ALTER SYSTEM SET DB_4K_CACHE_SIZE8M; CREATE TABLESPACE K4 DATAFILE F:\ORACLE\ORADATA\ZL9\K4.DBF SIZE 2M BLOCKSIZE 4K; CREATE TABLE SCOTT.A1 TABLESP…...
Collections工具类
类java.util.Collections提供了对Set、List、Map进行排序、填充、查找元素的辅助方法。 方法名说明void sort(List)对List容器内的元素排序,排序规则是升序void shuffle(List)对List容器内的元素进行随机排列void reverse(List)对List容器内的元素进行逆序排列void…...

java-函数式编程-jdk
背景 函数式接口很简单,但是不是每一个函数式接口都需要我们自己来写jdk 根据 有无参数,有无返回值,参数的个数和类型,返回值的类型 提前定义了一些通用的函数式接口 IntPredicate 参数:有一个,类型是int类…...
qiankun实现微前端,vue3为主应用,分别引入vue2和vue3微应用
1、vue3主应用配置 1、安装 qiankun yarn add qiankun # 或者 npm i qiankun -S2、在主应用中注册微应用 import { registerMicroApps, start } from "qiankun" const apps [{ name: vue2App, // 应用名称 xs_yiqing_vue2entry: //localhost:8080, // vue 应用…...

SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...

C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...
MySQL 主从同步异常处理
阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示ÿ…...