题目学生信息管理系统
姓名: 学号: 班级:
负责模块:学生管理,课程管理模块 小组成员: 成绩: 评阅教师:
1
目录:
系统功能分析………………………………………………………………2
数据库设计…………………………………………………………………2
各个数据表创建……………………………………………………………3
存储过程创建………………………………………………………………5
学生信息管理系统总括……………………………………………………6
登录模块……………………………………………………………………7
教师管理模块………………………………………………………………8
学生管理模块………………………………………………………………10
课程管理模块………………………………………………………………18
成绩管理模块………………………………………………………………20
班级管理模块………………………………………………………………22
退出管理……………………………………………………………………24
2009-12-9
2
正文
正文内容如下: 一、系统功能分析
功能分析:学生信息管理系统属应用系统。系统是一个集成多功能的信息管理系统,有教师资料管理、学生管理、班级管理、专业管理、课程管理、成绩管理和院系管理功能模块。本系统将大大提高学生信息的管理效率,带来数据共享、网络查询和网络管理等便利,实现学生信息管理的数字化和智能化。
1. 模块划分(整个系统功能结构图)
2. 各模块功能简介
登录模块:本模块主要为用户登录,权限验证,管理员添加,实现系统的多用户管理功能,不同权限的用户,可对其进行不同功能的管理。
教师管理模块:本模块主要对教师的资料信息进行查询,删除,修改和添加。
学生管理模块:本模块主要对学生资料信息进行相应的查询,删除,修改和添加。添加了学生所在院系资料与学生所在专业资料,同时可对院系资料与专业资料进行相应的添加,修改,查询。
课程管理模块:本模块主要对课程资料进行管理,对其进行查询,添加,修改和删除。又详细划分了课程类别资料,对其进行如上操作。
成绩管理模块:本模块对学生成绩进行查询操作,如发现成绩有输入错误,可对其进行相应的修改,还可对学生的成绩进行录入‘
班级管理模块:本模块班级资料信息进行管理,对其进行相应的查询,修改,删除和添加。 二、数据库设计
根据学生管理系统所要求的数据信息,创建数据库SMSStudent,根据各模块可创建如下10
3
个数据表,其字段名,数据类型等内容如下:
1. 各表及字段 Class 表:
Course 表:
Coursetype 表:
Department 表:
Grade 表:
4
Speciality 表:
Speciality_course 表:
Student 表:
Teacher 表:
5
Users 表:
添加:class_stu_view视图表。 2. 系统中模块使用的存储过程
本数据库共创建3处存储过程,其存储过程为: 教师资料查询(teacher.aspx页面) Employess_Sel存储过程:
CREATEPROCEDURE [dbo].[Employess_Sel] @lastname nvarchar(20), @department varchar(30) AS select
teacherid,teachername,department.departmentid,department.departmentname,sex,telephone
from
teacher,department
where
teacher.departmentid=department.departmentid and( teachername like'%'+ @lastname +'%'anddepartment.departmentname=@department)
学生资料查询(student.aspx页面) Student_Sel存储过程:
CREATEPROCEDURE [dbo].[Student_Sel] @lastname nvarchar(20), @department varchar(30), @studentid varchar(10) AS
select*from [student],[class] where student.classid=class.classid and((
studentname
like'%'+
@lastname
+'%'or
6
studentid=@studentid )andclass.classname=@department)
管理员添加(register.aspx页面) procAdmin存储过程:
CREATEprocedure [dbo].[procAdmin] @Auser char(10), @Apwd varchar(50), @Atype varchar(20) AS
insertinto
users(username,mypassword,usertype)values(@Auser,@Apwd,@Atype)
三、各模块页面设计,具体功能实现 1. 学生信息管理系统总括:
开发环境:Microsoft Visual Studio 2005 开发语言:C#,JavaScript
数据库:Microsoft SQL Server 2005
辅助工具:Adobe Photoshop CS2,Dreamweaver MX 2004 整体页面架构:框架集(crm_admin_main.htm)(Width=763)
如上图所示
四个框架内容文件:(top.htm, left.htm, switch.htm, body.htm)
1. top.htm页面:JavaScript 特效rain.js(详细代码见项目); 2. left.htm页面:JavaScript 级联菜单,全部由JavaScript生成,通过数组定义子菜单,
可任意添加目录项与级联子项,程序可扩展性良好。
3. switch .htm页面:JavaScript 作开关按钮,实现框架的展开与合并功能。 4. body.htm页面:定位框架的主内容文件。(主要是aspx文件的定位:后面加xxx.aspx
target=’mainFrame’。例如:item_link[2][0]=\"student.aspx target='mainFrame'\";) 注:本页面由Dreamweaver MX 2004实现,经JavaScript代码进行修改而成。
7
2.全局配置文件:
数据库访问类connDB.cs
public static SqlConnection createConn() { string sms_connstr =
System.Configuration.ConfigurationManager.ConnectionStrings[\"con\"].ToString();
SqlConnection conn = new SqlConnection(sms_connstr); return conn; }
3. Web.Config文件
配置信息:数据库连接字符串
4. Web.sitemap文件
配置整个站点的层次结构
以学生管理为例,站点地图代码如下:
5. SiteMapPath控件 SiteMapPath控件数据内容由Web.sitemap文件自动导航 一、登录模块: 1. 用户注册页面(register.aspx)如下图: 本页面可向系统注册管理员,通过身份验证获得整个系统的管理权限。注册是同过MD5加密算法对密码框(txtpwd.Text)进行加密。 8 调用加密算法:Stringstr_pwd = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(this.mypassword.Text, \"md5\").ToString(); 实现方法:首先定义ExecuteInsert() 方法(代码详见项目),在点击添加按钮时调用,但在调用前必须 判断该注册用户是否已存在或注册的用户和密码不能为空,代码如下; string str_user = txtuser.Text; string str_sel = \"select count(username) from users where username='\" + str_user + \"'\"; int count = data.ExecuteSel(str_sel); if (count > 0)//用户已存在 { Page.ClientScript.RegisterStartupScript(this.GetType(), \"show_message\", \"\"); } else { if (this.txtuser.Text == \"\" || this.txtpwd.Text == \"\") { Page.ClientScript.RegisterStartupScript(this.GetType(), \"show_message\", \"\"); } else { this.ExecuteInsert(); } } 2. 用户登录页面(logoin.aspx)如下图: 本页面主要实现用户登录,通过MD5加密算法,确保数据库访问安全性。 三、教师管理模块: 1. 教师资料管理页面 (teacher.aspx) 9 本页面主要对教师资料管理,查询和删除。 2. 教师资料添加页面(addteacher.aspx) 本页面主要对教师资料进行添加功能,对应 teacher 表。 3. 教师信息修改页面(Editteacher.aspx) 10 此页面通过 teacher.aspx 页面传值,来对教师详细资料信息进行数据绑定。保存按钮主要代码: string sms_sqlstr = \"update teacher set Teachername='\" + TextBox2.Text + \"',sex='\" + RadioButtonList1.SelectedItem.Text + \"',technicalpost='\" + DropDownList2.SelectedItem.Text + \"',telephone='\" + TextBox8.Text + \"',homeaddr='\" + TextBox7.Text + \"',pwd='\" + TextBox9.Text + \"',remark='\" + TextBox6.Text + \"',departmentid='\" + DropDownList3.SelectedValue.ToString() + \"' where Teacherid='\" + TextBox1.Text + \"'\"; SqlCommand sms_comm = newSqlCommand(sms_sqlstr, sms_conn); sms_comm.Connection.Open(); 四、学生管理模块: 1. 学生资料管理页面(student.aspx)如下图所示: 数据绑定控件GridView ,掌握该控件的灵活用法,掌握常用属性设置,主要实现其数据绑定功能与分页功能。数据绑定的实现方式很多,可选用直接绑定 BoundField ,或选用 TemplateField等,如学号,姓名,选择删除字段用的是 TemplateField ,在 TemplateField 区域中放入相应的控件,作成如图效果,掌握数据集对控件数据的填充方法,代码如下: sms_conn.Open(); sms_sqlstr = \"select * from [student],[class] where student.classid=class.classid\"; SqlDataAdapter sms_adp = newSqlDataAdapter(sms_sqlstr,sms_conn); DataSet sms_ds = newDataSet(); sms_adp.Fill(sms_ds); sms_conn.Close(); sms_stutent.DataSource = sms_ds; sms_stutent.DataBind(); sms_ds.Clear(); sms_ds.Dispose(); 实现选择删除列的方法:全选、反选 11 全选代码: for (int i = 0; i < sms_stutent.Rows.Count; i++) { CheckBox chkSelect = (CheckBox)sms_stutent.Rows[i].FindControl(\"chkSelect\"); chkSelect.Checked = true; } 反选代码: for (int i = 0; i < sms_stutent.Rows.Count; i++) { CheckBox chkSelect = (CheckBox)sms_stutent.Rows[i].FindControl(\"chkSelect\"); chkSelect.Checked = !chkSelect.Checked; } 重点难点为:删除按钮的事件,如何取 studentid 的键值,实现方法的代码为: for (int i = 0; i < sms_stutent.Rows.Count; i++) { CheckBox chkSelect = (CheckBox)sms_stutent.Rows[i].FindControl(\"chkSelect\"); if (chkSelect.Checked) { //如何选中ID列?str string str = ((Label)sms_stutent.Rows[i].FindControl(\"Label3\")).Text; string sms_sqlstr = \"delete from student where studentid='\" + str + \"'\"; SqlCommand sms_comm = newSqlCommand(sms_sqlstr, sms_conn); sms_comm.Connection.Open(); try { sms_comm.ExecuteNonQuery(); sms_lbl_note.Text = \"删除成功\"; } catch (SqlException) { sms_lbl_note.Text = \"删除失败\"; sms_lbl_note.Style[\"color\"] = \"red\"; } sms_comm.Connection.Close(); } } SMS_BindGrid(); 分页中用到 ((GridView)Container.NamingContainer).PageIndex+1 %> 12 <%#((GridView)Container.NamingContainer).PageCount %> Enable=\"<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>\"Font-Size=\"Small\">首页 =\"Small\">上一页 Font-Size=\"Small\">尾页 实现分页的事件: protectedvoid sms_stutent_PageIndexChanging(object sender, GridViewPageEventArgs e) { try { sms_stutent.PageIndex = e.NewPageIndex; SMS_BindGrid(); } catch { } } 本页面的查询按钮运用的是存储过程进行查询(存储过程见数据库设计),调用存储过程的代码如下: sms_conn.Open(); SqlCommand sms_comm = newSqlCommand(\"Student_Sel\",sms_conn); sms_comm.CommandType = CommandType.StoredProcedure; sms_comm.CommandText = \"Student_Sel\"; sms_comm.Connection =sms_conn; SqlDataAdapter sms_da = newSqlDataAdapter(sms_comm); sms_da.SelectCommand.Parameters.Add(\"@lastname\",SqlDbType.NVarChar); sms_da.SelectCommand.Parameters.Add(\"@department\", SqlDbType.VarChar,30); sms_da.SelectCommand.Parameters.Add(\"@studentid\", SqlDbType.VarChar,10); sms_da.SelectCommand.Parameters[\"@lastname\"].Value = this.txtStuName.Text.Trim().Replace(\"'\",\"'\"); sms_da.SelectCommand.Parameters[\"@department\"].Value = this.DropDownList1.SelectedValue.ToString(); sms_da.SelectCommand.Parameters[\"@studentid\"].Value = 13 this.txtStuID.Text.Trim().Replace(\"'\",\"'\"); DataSet sms_ds = newDataSet(); sms_da.Fill(sms_ds); sms_conn.Close(); sms_stutent.DataSource = sms_ds; sms_stutent.DataBind(); GridView控件中RowDataBound 事件,可对其样式进行设置。鼠标经过行时颜色的变化。其代码如下: if (e.Row.RowType == DataControlRowType.DataRow) { //鼠标经过时,行背景色变 e.Row.Attributes.Add(\"onmouseover\", \"this.style.backgroundColor='#E6F5FA'\"); //鼠标移出时,行背景色变 e.Row.Attributes.Add(\"onmouseout\", \"this.style.backgroundColor='#FFFFFF'\"); //如果是绑定数据行 } 注:其他也面凡是用到GridView 控件均用到该事件。 2. 学生资料编辑页面(Editstu.aspx) 主要对所对应得学生信息进行编辑修改,本页面的重点为页面之间的传值,在 student.aspx 页面中设置学号列中HyperLink 控件的属性: NavigateUrl='<%# Eval(\"studentid\' 在该页面中获取其id并对其他控件进行数据绑定,其方法为: string id = Request.QueryString[\"id\"]; string sqlstr = \"select * from class_stu_view where studentid='\" + id + \"' \"; SqlCommand cmd = newSqlCommand(sqlstr, conn); SqlDataAdapter ads = newSqlDataAdapter(cmd); DataSet ds = newDataSet(); ads.Fill(ds, \"s\"); this.txtStudentID.Text = ds.Tables[\"s\"].Rows[0][0].ToString(); this.txtStudentName.Text = ds.Tables[\"s\"].Rows[0][1].ToString(); this.rbtnlSex.SelectedValue = ds.Tables[\"s\"].Rows[0][2].ToString(); this.ddlClass.DataSource = ds.Tables[\"s\"]; 14 this.ddlClass.SelectedItem.Text = ds.Tables[\"s\"].Rows[0][12].ToString(); this.txtBirthdate.Text = ds.Tables[\"s\"].Rows[0][3].ToString(); this.txtTelephone.Text = ds.Tables[\"s\"].Rows[0][5].ToString(); this.txtCredithour.Text = ds.Tables[\"s\"].Rows[0][6].ToString(); this.ddlRu_date.DataSource = ds.Tables[\"s\"]; this.ddlRu_date.SelectedItem.Text = ds.Tables[\"s\"].Rows[0][7].ToString(); this.txtPwd.Text = ds.Tables[\"s\"].Rows[0][9].ToString(); this.txtAddr.Text = ds.Tables[\"s\"].Rows[0][8].ToString(); this.txtRemark.Text = ds.Tables[\"s\"].Rows[0][10].ToString(); 数据绑定之后,可对其相应的信息进行修改、更新,其代码为: string sms_sqlstr = \"update student set studentname='\" + txtStudentName.Text + \"',sex='\" + rbtnlSex.SelectedItem.Text + \"',telephone='\" + txtTelephone.Text + \"',address='\" + txtAddr.Text + \"',credithour='\" + txtCredithour.Text + \"',pwd='\" + txtPwd.Text + \"',remark='\" + txtRemark.Text + \"',ru_date='\" + ddlRu_date.SelectedValue.ToString() + \"',birthday='\" + txtBirthdate.Text + \"' where studentid='\" + txtStudentID.Text + \"'\"; SqlCommand sms_comm = newSqlCommand(sms_sqlstr, conn); sms_comm.Connection.Open(); try { sms_comm.ExecuteNonQuery(); sms_lbl_note.Text = \"编辑成功\"; } catch (SqlException) { sms_lbl_note.Text = \"编辑失败\"; sms_lbl_note.Style[\"color\"] = \"red\"; } sms_comm.Connection.Close(); sms_DataBind(); 3. 学生资料添加页面(addstu.aspx) 本页面主要对学生的信息进行相应的添加功能,主要运用了insert SQL语句: sms_sqlstr = \"insert into student(studentname,sex,classid,telephone,address,pwd,remark,ru_date,studentid,birthday,credithour) 15 values('\"+txtStudentName.Text+\"','\"+rbtnlSex.SelectedItem.Text+\"','\"+ddlClass.SelectedValue.ToString()+\"','\"+txtTelephone.Text+\"','\"+txtAddr.Text+\"','\"+txtPwd.Text+\"','\"+txtRemark.Text+\"','\"+ddlRu_date.Text+\"','\"+txtStudentID.Text+\"','\"+txtBirthdate.Text+\"','\"+txtCredithour.Text+\"')\"; SqlCommand sms_comm=newSqlCommand(sms_sqlstr,sms_conn); sms_comm.Connection.Open(); try { sms_comm.ExecuteNonQuery(); sms_lbl_note.Text = \"编辑成功\"; } catch (SqlException){ sms_lbl_note.Text = \"编辑失败\"; sms_lbl_note.Style[\"color\"] = \"red\"; } sms_comm.Connection.Close(); 4. 学生所在院系资料页面(Department.aspx) 本页面采用Repeater控件实现数据绑定:具体实现方法为首先创建3行5列的表格进行布局,在其对应的单元格填充相关内容和控件,然后切换到源代码文件中在其Repeater控件代码处添加 publicvoid RepeaterIC(object sender,RepeaterCommandEventArgs e) { System.Web.UI.WebControls.LinkButton update = (LinkButton)e.Item.FindControl(\"LinkButton2\"); System.Web.UI.WebControls.LinkButton cancel = (LinkButton)e.Item.FindControl(\"LinkButton1\"); System.Web.UI.WebControls.LinkButton edit = (LinkButton)e.Item.FindControl(\"LinkButton3\"); System.Web.UI.WebControls.LinkButton delete = (LinkButton)e.Item.FindControl(\"LinkButton4\"); 16 System.Web.UI.WebControls.Label LabDepid = (Label)e.Item.FindControl(\"LabDepid\"); System.Web.UI.WebControls.Label LabDepname = (Label)e.Item.FindControl(\"LabDepname\"); System.Web.UI.WebControls.Label LabDephead = (Label)e.Item.FindControl(\"LabDephead\"); System.Web.UI.WebControls.TextBox TetDepid = (TextBox)e.Item.FindControl(\"TxtDepid\"); System.Web.UI.WebControls.TextBox TetDepname = (TextBox)e.Item.FindControl(\"TxtDepname\"); System.Web.UI.WebControls.TextBox TetDephead = (TextBox)e.Item.FindControl(\"TxtDephead\"); if (e.CommandName == \"edit\") { update.Visible = true; cancel.Visible = true; edit.Visible = false; LabDepname.Visible = false; LabDephead.Visible = false; TetDepname.Visible = true; TetDephead.Visible = true; } if (e.CommandName == \"cancel\") { SMS_BindRepeater(); } if (e.CommandName == \"update\") { sqlstr = \"update Department set departmentname='\" + TetDepname.Text + \"',departmenthead='\" + TetDephead.Text + \"'where departmentid='\" + LabDepid.Text + \"'\"; SqlCommand sqlcom = newSqlCommand(sqlstr, sms_conn); sms_conn.Open(); sqlcom.ExecuteNonQuery(); SMS_BindRepeater(); sms_conn.Close(); } if (e.CommandName == \"delete\") { sqlstr = \"delete Department where departmentid='\" + LabDepid.Text + \"'\"; SqlCommand sqlcom = newSqlCommand(sqlstr, sms_conn); sms_conn.Open(); sqlcom.ExecuteNonQuery(); SMS_BindRepeater(); sms_conn.Close(); } 17 } 系部查询按钮事件直接用SQL语句实现 5. 系部资料添加页面(addDepartment.aspx) 该页面主要实现系部资料的添加功能,其内容对应数据库 Department 表。 6. 学生所在专业资料页面(speciality.aspx) 本页面主要对学生所在专业资料进行管理,并可对专业名称进行修改。其主要代码为GridView 事件代码,有RowCancelingEdit,RowEditing,RowUpdating等事件。其主要代码为SQL语句,利用数据集对数据进行填充绑定。 其中,分页,删除,反选,全选,取消事件同student.aspx页面。 7. 专业资料添加页面(addspeciality.aspx) 本页面主要实现专业信息的添加,对应 speciality 表。 五、课程管理模块: 1. 课程资料管理页面(course.aspx) 18 本页面对课程进行系统管理,功能的实现主要为GridView 控件的使用。其课程查询按钮的 代码为: sms_sqlstr = \"select * from [course],[coursetype] where course.coursetypeid=coursetype.coursetypeid and (coursename='\" + TextBox1.Text + \"' or courseid='\" + TextBox2.Text + \"' or coursetype.typename='\" + DropDownList1.SelectedItem.Text + \"')\"; sms_conn.Open(); SqlDataAdapter sms_da = newSqlDataAdapter(sms_sqlstr, sms_conn); DataSet sms_ds = newDataSet(); sms_da.Fill(sms_ds); sms_conn.Close(); sms_course.DataSource = sms_ds; sms_course.DataBind(); 2. 课程资料添加页面(addcourse.aspx) 19 该页面对学生所修课程进行相应的添加,对应 Course 表。添加代码: sms_sqlstr = \"insert into course(courseid,coursename,coursetypeid,credithour,totalperiod,weekperiod,remark) values('\"+txtCourseID.Text+\"','\"+txtCourseName.Text+\"','\"+ddlCourseType.SelectedValue.ToString()+\"','\"+ddlCredithour.SelectedValue.ToString()+\"','\"+txtTotalperiod.Text+\"','\"+ddlWeekperiod.SelectedValue.ToString()+\"','\"+txtRemark.Text+\"')\"; SqlCommand sms_comm = newSqlCommand(sms_sqlstr,sms_conn); sms_comm.Connection.Open(); try{ sms_comm.ExecuteNonQuery(); Response.Redirect(\"course.aspx\"); sms_lbl_note.Text = \"添加成功\"; } catch{ sms_lbl_note.Text = \"添加失败\"; sms_lbl_note.Style[\"color\"] = \"red\"; } sms_comm.Connection.Close(); 3. 课程类别资料页面(coursetype.aspx) 本页面对课程进行分类管理,可对课程名进行相应修改操作,用Repeater 控件实现,具体做法为,在控件中布局1行7列的表格,并对相应字段进行数据绑定。 该页面的查询按钮事件代码: sqlstr = \"select * from coursetype where coursetypeid='\"+DropDownList1.SelectedValue.ToString() +\"'\"; SqlDataAdapter cmd = newSqlDataAdapter(sqlstr, sms_conn); DataSet ds = newDataSet(); cmd.Fill(ds, \"T\"); RepeaterD.DataSource = ds.Tables[\"T\"]; RepeaterD.DataBind(); 4. 课程类别资料添加页面(addcoursetype.aspx) 20 本页面主要对课程的类别添加,对应 coursetype 表。 六、成绩管理模块: 1. 学生成绩查询页面(grade.aspx) 本页面实现了对学生成绩查询管理,以课程名为导航,使用DataList 控件对课程号进行传值绑定,实现课程所对应学生成绩查询功能,其DataList主属性代码为: NavigateUrl='<%#Eval(\"courseid\'><%#Eval(\"coursename\")%> 使用GridView 对其成绩进行相应的绑定,如若发现其成绩有输入错误,经获权限后方可对其进行修改(权限用户方面作的不好,有待实现),其中编辑实现为GridView 事件代码,有RowCancelingEdit,RowEditing,RowUpdating等事件。其主要代码为SQL语句,利用数据集对数据进行填充绑定。 该页面的查询按钮事件代码: if (txtStudentName.Text == \"\"&& txtStudentID.Text != \"\") { sms_sqlstr = \"select * from [student],[grade],[course] where grade.studentid=student.studentid and grade.courseid=course.courseid and (student.studentid='\" +txtStudentID.Text+ \"')\"; } elseif (txtStudentID.Text == \"\"&& (txtStudentName.Text!= \"\")) { sms_sqlstr = \"select * from [student],[grade],[course] where grade.studentid=student.studentid and grade.courseid=course.courseid and 21 (student.studentname='\" +txtStudentName.Text + \"')\"; } elseif ((txtStudentName.Text== \"\") && (txtStudentID.Text== \"\")) { sms_sqlstr = \"select * from [student],[grade],[course] where grade.studentid=student.studentid and grade.courseid=course.courseid and (student.studentname='\" +txtStudentName.Text+ \"' or student.studentid='\" +txtStudentID.Text+ \"' or course.coursename='\" + DropDownList1.SelectedItem.Text + \"')\"; } else { sms_sqlstr = \"select * from [student],[grade],[course] where grade.studentid=student.studentid and grade.courseid=course.courseid and (student.studentname='\" +txtStudentName.Text+ \"' or student.studentid='\" +txtStudentID.Text+ \"' or course.coursename='\" + DropDownList1.SelectedItem.Text + \"')\"; } sms_conn.Open(); SqlDataAdapter sms_da = newSqlDataAdapter(sms_sqlstr, sms_conn); DataSet sms_ds = newDataSet(); sms_da.Fill(sms_ds); sms_conn.Close(); sms_grade.DataSource = sms_ds; sms_grade.DataBind(); txtStudentName.Text= \"\"; txtStudentID.EnableViewState = false; 其中,分页,删除,反选,全选,取消事件同student.aspx页面。 2. 学生成绩录入页面(addgrade.aspx) 本页面主要对学生的成绩进行录入,其缺点为只能同时对1个同学,进行数据输入,如若人数较多时,效率很低,可对其进行改进,利用通过鼠标点击某个班级,直接跳转到全班学生,可对其进行一一录入,可用GridView 等数据绑定控件实现。 本页面得功能是利用回传页面,通过输入学号,对学生姓名,所修学分,进行数据刷 22 新,从而确定其成绩,其回传代码为: if (IsPostBack) { try { string sqlstr = \"select studentname,credithour from student where studentid='\" + txtStudentID.Text + \"'\"; SqlCommand cmd = newSqlCommand(sqlstr, sms_conn); sms_conn.Open(); cmd.ExecuteScalar(); SqlDataAdapter adp = newSqlDataAdapter(cmd); DataSet ds = newDataSet(); adp.Fill(ds, \"T\"); Label2.Text = ds.Tables[\"T\"].Rows[0][0].ToString(); Label1.Text = ds.Tables[\"T\"].Rows[0][1].ToString(); } catch (Exception) { sms_lbl_note.Text = \"输入的学号不存在,核对后请重新输入!\"; sms_lbl_note.Style[\"color\"] = \"red\"; } } else { ddlBind(); } 对学生成绩录入时首先判断学生成绩是否已存在,若存在,录入失败!!,否则,成绩录入成功! 七、班级管理模块: 1. 班级资料管理页面(calss.aspx) 23 本页面对班级资料管理,通过查询按钮可对班级信息查询,同样用到 GridView 控件对其数据进行绑定,该页面的查询按钮事件代码:、 stringsms_sqlstr = \"select * from [class],[speciality],[student] where speciality.specialityid=class.specialityid and student.studentid=class.monitorid and (classname='\" +txtClassName.Text+ \"' or speciality.specialityname='\" + DropDownList1.SelectedItem.Text + \"')\"; sms_conn.Open(); SqlDataAdapter sms_da = newSqlDataAdapter(sms_sqlstr, sms_conn); DataSet sms_ds = newDataSet(); sms_da.Fill(sms_ds); sms_conn.Close(); sms_class.DataSource = sms_ds; sms_class.DataBind(); 注:该处所遇到的问题:该班级有多少名学生,就对应几条同样班级信息的资料。问题已解决: 关联表的条件不正确,条件语句是where student.studentid=class.monitorid,并非是student.classid=class.classid!! GridView中编辑列有RowCancelingEdit,RowEditing,RowUpdating,RowDeleting等事 件,通过权限可对详细资料(班级名),入学日期和班长姓名进行修改编辑,实现班级资料的准确性。 删除事件代码: string str = ((Label)sms_class.Rows[e.RowIndex].Cells[1].Controls[1]).Text; string sms_sqlstr = \"delete from class where classid='\" +str+ \"'\"; SqlCommand sms_comm = newSqlCommand(sms_sqlstr, sms_conn); sms_conn.Open(); try{ sms_comm.ExecuteNonQuery(); sms_lbl_note.Text = \"删除成功\"; } catch (SqlException) { sms_lbl_note.Text = \"删除失败\"; sms_lbl_note.Style[\"color\"] = \"red\"; } sms_comm.Connection.Close(); Bind(); 重点为键值的获取: string str = ((Label)sms_class.Rows[e.RowIndex].Cells[1].Controls[1]).Text 2. 班级资料添加(addclass.aspx) 24 本页面主要对学生所在班级的资料进行添加功能,对应 class 表。 八、退出管理: JavaScript 脚本语言实现,首先定义 logout()方法,在鼠标单击时调用该方法即可。具体代码如下: function logout() { if(confirm(\"真的要退出吗?\")) { } else { top.location ='crm_admin_main.htm'; } } document.writeln(\" onclick=javascript:logout();this.blur();> top.location='logoin.aspx'; 学生信息管理系统总结: 本学生信息管理系统基本功能已实现,有些功能存在一些局限性,编程代码的复用性不太完善,页面设计比较简单,缺乏修饰效果,欠缺CSS样式,功能模块的实现需要进一步完善。 25 26 因篇幅问题不能全部显示,请点此查看更多更全内容
\");href=javascript: src=images/left/left.gif>