资源预览内容
第1页 / 共64页
第2页 / 共64页
第3页 / 共64页
第4页 / 共64页
第5页 / 共64页
第6页 / 共64页
第7页 / 共64页
第8页 / 共64页
第9页 / 共64页
第10页 / 共64页
亲,该文档总共64页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
SQL Server 2005数据库基础1SQLServer2005数据库基础项目八学生信息管理系统的构建(1)项目八 学生信息管理系统的构建 模块8-1 项目的初步设计 2SQLServer2005数据库基础项目八学生信息管理系统的构建(1)学习目标l能够根据需求分析,设计系统的功能模块l能够理解各模块的功能l能够划分各模块之间的关系3SQLServer2005数据库基础项目八学生信息管理系统的构建(1)工作任务l设计系统功能模块,并画出各模块之间的联系图。l分析各功能模块具体实现的功能。4SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务1 设计系统功能模块,并画出设计系统功能模块,并画出各模块之间的联系图。各模块之间的联系图。 【任务分析】 设计一个系统,首先要考虑到其功能的完整性,再次考虑到其延展性;一个好的系统结构是非常清晰的,每个模块都有独立的一些功能,各模块组合起来又能完成更加复杂的功能,所以设计好一个系统的结构是非常重要的。在此,我们可以将学生课程管理系统分为两类用户,分别是管理员用户和普通用户。管理员用户主要包括学生管理、教师管理、课程管理、班级管理、选课管理、成绩管理等功能;普通用户的对象主要是学生,主要包括修改密码、课程信息查询、选课、课程查询、成绩查询等功能。 5SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务实现 根据分析,可以绘制如图 81的系统模块图。 图 81系统模块图6SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务任务2 分析各功能模块具体实现的功分析各功能模块具体实现的功能。能。【任务分析】 模块图中的基本模块的功能可以具体描述出来。7SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务实现管理员管理模块管理员管理模块 该模块主要由六个子模块构成,主要负责学生、教师、课程、班级等相关信息的管理功能。 1)学生管理子模块)学生管理子模块 该模块主要负责管理所有在校注册学生的个人信息。主要功能包括添加、删除、修改、查找学生信息。每个学生有唯一的学号,管理员添加新生后,新生即可登录此系统浏览个人信息,登录此系统的用户名和密码默认都是此学生的学号。 2)教师管理子模块)教师管理子模块 该模块主要负责管理系统管理员的信息。主要功能是将本校教师的权限设为管理员。管理员可添加新教师信息,每个教师有唯一的编号,之后通过把教师加为管理员,而令此教师拥有管理员的权限,从而此教师可登录系统进行管理员的相关操作。8SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务实现管理员管理模块管理员管理模块 3)课程管理模块)课程管理模块 该模块负责管理所有的课程信息。主要功能包括添加、删除、 修改、查找课程信息。只有管理员才具有对课程信息进行维护的权限。课程管理模块是选课管理模块的基础,只有在课程管理中添有课程的信息,学生才能进行选课。 4 4)班)班级管理模管理模块 该模块负责班级的管理。主要功能包括添加、删除和修改班级信息,以及对班级信息的查询。只有管理员才具有对班级管理信息进行维护的权限。学生信息的添加是建立在班级信息维护的基础上,每个学生必然属于特定的班级。并且在管理员对学生成绩查询统计时,可以统计各个班级的平均分、最高分等。9SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务实现管理员管理模块管理员管理模块 5 5)选课管理模管理模块 该模块负责选课的管理。主要功能包括删除、统计学生选课信息。它以在课程管理系统中维护好的信息作为基础,既可对选修课程进行管理,可统计选修课人数,也可超过选课规定人数时进行删除。 6)成)成绩管理模管理模块 学生选修的每一门课最后都有成绩,查询的内容包括课程名称、某位学生的成绩等。只有管理员可录入学生每一门课的成绩,并能进行修改,也可以计算某个班级的某个课程的最高分、平均分,计算优秀和不及格人数等。学生只能查询自己所学课程的成绩。10SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务实现学生操作模块学生操作模块 学生只能进入此模块,该模块主要有5个方面的功能。可操作有关个人的信息,如修改个人的登录密码、浏览相关的课程信息、进行选课操作、查看自己已经选修的课程、查询自己的成绩等。 11SQLServer2005数据库基础项目八学生信息管理系统的构建(1)项目八 学生信息管理系统的构建 模块8-2 设计和建立数据库 12SQLServer2005数据库基础项目八学生信息管理系统的构建(1)学习目标 l能够根据系统需求创建必要的数据表中的字段,并设计其属性l会熟练创建存储过程l熟练掌握SQL数据库开发环境13SQLServer2005数据库基础项目八学生信息管理系统的构建(1)工作任务工作任务 l数据库设计和建立l创建存储过程14SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务任务1 数据库设计和建立数据库设计和建立【任务分析】 根据前面设计的系统功能模块结构,本任务要设计若干数据表,要求尽量减少数据冗余。可以在系统中创建9张表:除了学生、班级、教师、课程等基本表外,考虑到便于系统管理员管理,还设计了用户表,记录用户登录系统时的用户名、密码和权限。此外,可能在过程中创建临时的数据表,这样更有利于系统的实现。 15SQLServer2005数据库基础项目八学生信息管理系统的构建(1) 首先是用户表(Users),用于存储学生管理系统中所有参与人员的信息,包括管理员登录信息、学生登录信息,这样做的目的是可以方便系统判断用户登录的类型,以及对用户类型的统一管理。用户表中主要包括用户名、用户密码、用户类型,具体定义如表 81所示。 本系统中最重要的对象是学生,学生表(student)就是用于存储所有学生信息的。具体定义如表 82所示。 学生所在班级信息相对独立,系统用班级表(class)记录所有班级信息。具体定义如表 83所示。 系统构建教师表(teacher)用来存储本校所有教师信息,教师信息表给出一个较为简单的结构。具体定义表 84所示。 每一个教师讲授什么课程都有记录,我们教师授课表(teaching)来记录每位教师所上的课程。具体定义如表 85所示。 学生总是离不开课程,系统设计了课程表(course),用于存储本校所有课程信息,其中包括课程名、学分。具体定义如表 86所示。 学生所学课程都会有成绩,并且每个学生每一门课只有一个成绩。系统设计了成绩表(choice),用于存储本校所有学生所学课程信息。具体定义如表 87所示。 学生所属专业情况记录在专业表(Professional)中,具体定义如表 88所示。 专业所属系部情况记录在系部表(department)中,具体定义如表 89所示。 系统使用Microsoft SQL Server 2005建立数据库,库名为student。16SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务实现17SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务实现18SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务实现19SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务任务2 创建存储过程创建存储过程 【任务分析】利用存储过程,可以完成一些较综合的功能。l任务2.1:select_student_1存储过程的创建。l任务2.2:Insert_student_1存储过程的创建。20SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务任务2.1:select_student_1存储过存储过程的创建。程的创建。【程序代码】 CREATE PROCEDURE select_student_l(Sno varchar(50)ASselect *from studentwhere Sno=Sno21SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务任务2.1:select_student_1存储过存储过程的创建。程的创建。【程序说明】 该存储过程用于从student表中查询特定的学生个人信息,具体内容包括学生的学号、姓名、性别、出生日期、入学成绩等信息。存储过程中涉及的表中各字段的含义都已描述过。在本系统中,由于在很多情况下都需要判断学生信息的有效性,即此学生是否是已注册学生,调用此存储过程即可方便地根据学号判断学生信息的有效性;此存储过程还可在学生浏览个人信息时使用,调用它将快速地返回学生的基本信息。22SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务任务2.2:Insert_student_1存储过存储过程的创建。程的创建。【程序代码】CREATE PROCEDURE insert_student_l (Sno char(10), Sname char(10), Ssex char(2), Sbirthday datetime, Score numeric(18,0), Classno char(8)AS INSERT INTO Student_Class.dbo.student ( sno, sname, ssex, sbirthday, sscore, classno) VALUES ( Student id, Sname, Ssex, Sbirthday, Sscore, Classno)23SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务任务2.2:Insert_student_1存储过存储过程的创建。程的创建。l【程序说明】通过该存储过程往student表中添加新的学生基本信息,具体内容包括学生编号、学生姓名、性别、出生年月、入学成绩等信息。该存储过程在系统注册学生信息时被调用,每个学生有唯一的学生编号,在添加时,输入的学号要保证唯一性,否则系统会提示出错。24SQLServer2005数据库基础项目八学生信息管理系统的构建(1)练习练习 l试一试:l创建往课程信息表course中添加新课程信息的存储过程:insert_course_1。l往班级信息表class中添加班级信息的存储过程:Insert_class_1。l更新student表中的特定的学生信息情况的存储过程:Update_ student_1。 25SQLServer2005数据库基础项目八学生信息管理系统的构建(1)项目八 学生信息管理系统的构建 模块8-3 系统首页以及管理员操作 模块的页面代码的编写 26SQLServer2005数据库基础项目八学生信息管理系统的构建(1)学习目标学习目标l掌握控件的使用方法l掌握数据库连接的一般方法l掌握判断用户登陆的一般方法l掌握DATAGRID等数据控件的使用方法l理解使用DATASET的作用和原理l掌握数据绑定的方法l理解事件编程的方法l掌握数据库编程在程序的应用27SQLServer2005数据库基础项目八学生信息管理系统的构建(1)工作任务工作任务l主页面(登陆)代码编写l管理员操作模块中的学生信息管理页面代码编写l管理员操作模块中的课程信息管理主页面l管理员操作模块中的成绩信息管理主页面l管理员操作模块中的学生选课管理主页面28SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务任务1 主页面(登陆)代码编写主页面(登陆)代码编写 【任务分析】 编写如图 82所示的系统登陆页面,做好页面静态设计和控件设计,并要求登录时有权限限制。登录页面通过下拉菜单进行用户识别,不同用户登录时将根据其不同的身份进入不同的功能页面,系统用户包括管理员和学生,在用户身份验证通过后,系统利用较方便的GET传值方式将用户号、用户身份等信息存储在临时变量中,再分别进入管理员模块和学生操作模块,并伴随用户对系统进行操作的整个生命周期。 29SQLServer2005数据库基础项目八学生信息管理系统的构建(1)图 82学生课程管理系统首页30SQLServer2005数据库基础项目八学生信息管理系统的构建(1)程序代码程序代码Button1_Click的单击事件下进行编码。 protected void Button1_Click(object sender, EventArgs e) SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettingsdsn.ToString();/创建连接数据库连接字符串,具体连接放在Web.Config文件中 con.Open();/打开连接。 if (this.DropDownList1.SelectedItem.Value.Equals(1)/判断登陆的用户类型 SqlCommand com = new SqlCommand(select count(*) from student where sname= + this.TextBox1.Text + and sno= + this.TextBox2.Text + , con);/ 查找在数据库中是否含有此记录 int n = Convert.ToInt32(com.ExecuteScalar(); if (n 0)/利用返回记录的个数来判断是否存在,若存在,则转入相应的功能页面 Response.Redirect(studentcheck.aspx?S_na= + this.TextBox1.Text + &S_no= + this.TextBox2.Text); else this.Label1.Text = 输入的学生用户名或者密码错误!; else SqlCommand com = new SqlCommand(select count(*) from user where User_id = + this.TextBox1.Text + and User_Password= + this.TextBox2.Text + , con); int n = Convert.ToInt32(com.ExecuteScalar(); if (n 0) Response.Redirect(admin-student.aspx?no= + this.TextBox1.Text + &psw= + this.TextBox2.Text); else this.Label1.Text = 您输入的管理用户名或者密码错误!; con.Close(); 31SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务任务2 管理员操作模块中的学生信息管理员操作模块中的学生信息管理页面代码编写管理页面代码编写【任务分析】 学生信息维护页面窗体如图 83所示,其所属的学生信息维护模块是学生课程管理系统中管理学生学籍的部分。学生信息维护页面主要是负责所有学生个人信息的浏览,以及到其它管理页面的链接,页面采用DataGrid控件的Dglstudent与DataSet数据集的绑定来返回所有学生信息,分页显示,并可以对学生信息进行添加、修改、查找或删除。32SQLServer2005数据库基础项目八学生信息管理系统的构建(1)图 83学生信息维护页面33SQLServer2005数据库基础项目八学生信息管理系统的构建(1)程序代码学生信息维护页面的后台支持类学生信息维护页面的后台支持类(student.aspx.cs)主要代码:主要代码:页面载入事件中就进行数据绑定。页面载入事件中就进行数据绑定。protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettingsdsn.ToString(); con.Open(); SqlCommand com = new SqlCommand(select s.sno,s.sname,s.ssex,s.sbirthday,s.sscore,c.classname from student s left outer join class c on s.classno=c.classno, con); SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = com; DataSet ds = new DataSet(); sda.Fill(ds, t1); this.stu_dg1.DataKeyField = sno;/要设置,才可以查找控件 this.stu_dg1.DataSource = ds.Tablest1.DefaultView; this.stu_dg1.DataBind(); con.Close(); this.Panel1.Visible = false;/要放在PSOTBACK里边,表示第一次执行有效 this.Panel2.Visible = false;/ /DATAGIRD 里的数据要用样式表固定。34SQLServer2005数据库基础项目八学生信息管理系统的构建(1)程序代码添加新生的按钮单击事件添加新生的按钮单击事件 protected void Button1_Click(object sender, EventArgs e) this.Panel2.Visible = false; this.Panel1.Visible = true; 编辑记录事件,需要重新绑定编辑记录事件,需要重新绑定 protected void stu_dg1_EditCommand(object source, DataGridCommandEventArgs e) this.stu_dg1.EditItemIndex = e.Item.ItemIndex; SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettingsdsn.ToString(); con.Open(); SqlCommand com = new SqlCommand(select s.sno,s.sname,s.ssex,s.sbirthday,s.sscore,c.classname from student s left outer join class c on s.classno=c.classno, con); SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = com; DataSet ds = new DataSet(); sda.Fill(ds, t1); this.stu_dg1.DataSource = ds.Tablest1.DefaultView; this.stu_dg1.DataBind(); con.Close();35SQLServer2005数据库基础项目八学生信息管理系统的构建(1)程序代码取消事件取消事件 protected void stu_dg1_CancelCommand(object source, DataGridCommandEventArgs e) this.stu_dg1.EditItemIndex = -1; -控件再绑定控件再绑定- 分页事件分页事件 protected void stu_dg1_PageIndexChanged(object source, DataGridPageChangedEventArgs e) this.stu_dg1.CurrentPageIndex = e.NewPageIndex; -控件再绑定控件再绑定-36SQLServer2005数据库基础项目八学生信息管理系统的构建(1)程序代码更新记录事件更新记录事件 protected void stu_dg1_UpdateCommand(object source, DataGridCommandEventArgs e) string name,sex,bir,score,cla; string key = this.stu_dg1.DataKeyse.Item.ItemIndex.ToString(); TextBox tb; tb = (TextBox)e.Item.Cells1.Controls1; name = tb.Text.Trim(); tb = (TextBox)e.Item.Cells2.Controls1; sex = tb.Text.Trim(); tb = (TextBox)e.Item.Cells3.Controls1; bir = tb.Text.Trim(); tb = (TextBox)e.Item.Cells4.Controls1; score = tb.Text.Trim(); tb = (TextBox)e.Item.Cells5.Controls1; cla = tb.Text.Trim(); SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettingsdsn.ToString(); con.Open(); SqlCommand com = new SqlCommand(update student set sname= + name + , ssex= + sex + , sbirthday= + bir + , sscore= +score + where sno=+key+,con); com.ExecuteNonQuery(); this.stu_dg1.EditItemIndex = -1; com = new SqlCommand(select s.sno,s.sname,s.ssex,s.sbirthday,s.sscore,c.classname from student s left outer join class c on s.classno=c.classno, con); SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = com; DataSet ds = new DataSet(); sda.Fill(ds, t1); this.stu_dg1.DataSource = ds.Tablest1.DefaultView; this.stu_dg1.DataBind(); con.Close(); 37SQLServer2005数据库基础项目八学生信息管理系统的构建(1)程序代码删除事件删除事件protected void stu_dg1_DeleteCommand(object source, DataGridCommandEventArgs e) string key = this.stu_dg1.DataKeyse.Item.ItemIndex.ToString(); SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettingsdsn.ToString(); con.Open(); SqlCommand com = new SqlCommand(delete from student where sno= + key + , con); com.ExecuteNonQuery(); com = new SqlCommand(select s.sno,s.sname,s.ssex,s.sbirthday,s.sscore,c.classname from student s left outer join class c on s.classno=c.classno, con); -控件再绑定- 38SQLServer2005数据库基础项目八学生信息管理系统的构建(1)程序代码确定添加学生按钮事件确定添加学生按钮事件 protected void Button4_Click(object sender, EventArgs e) -连接数据库-SqlCommand com1 = new SqlCommand(insert into student(sno,sname,sbirthday,ssex,sscore,classno) values(sno,sname,sbirthday,ssex,sscore,classno), con);/写入数据库 SqlParameter sp1 = new SqlParameter(sname, SqlDbType.VarChar); SqlParameter sp2 = new SqlParameter(sno, SqlDbType.VarChar); SqlParameter sp3 = new SqlParameter(ssex, SqlDbType.VarChar); SqlParameter sp4 = new SqlParameter(sbirthday, SqlDbType.VarChar); SqlParameter sp5 = new SqlParameter(sscore, SqlDbType.VarChar); SqlParameter sp6 = new SqlParameter(classno, SqlDbType.VarChar); sp1.Value = this.TextBox1.Text; sp2.Value = this.TextBox2.Text; sp3.Value = this.TextBox3.Text; sp4.Value = this.TextBox4.Text; sp5.Value = this.TextBox5.Text; sp6.Value = this.TextBox6.Text; com1.Parameters.Add(sp1); com1.Parameters.Add(sp2); com1.Parameters.Add(sp3); com1.Parameters.Add(sp4); com1.Parameters.Add(sp5); com1.Parameters.Add(sp6); SqlCommand com2 = new SqlCommand(select count(*) from student where sno= + this.TextBox2.Text + ,con); int n = Convert.ToInt32(com2.ExecuteScalar(); if(n0) this.Label2.Text=学生编号不能重复!; this.TextBox2.Text=; else com1.ExecuteNonQuery(); this.Label2.Text=插入记录成功!; SqlCommand com = new SqlCommand(select s.sno,s.sname,s.ssex,s.sbirthday,s.sscore,c.classname from student s left outer join class c on s.classno=c.classno, con); -控件再绑定- 39SQLServer2005数据库基础项目八学生信息管理系统的构建(1)程序代码查询按钮事件查询按钮事件protected void Button6_Click(object sender, EventArgs e) string ck = this.TextBox7.Text.Trim(); -连接数据库-SqlCommand com = new SqlCommand(select count(*) from student where sname= + ck + , con); int n = Convert.ToInt32(com.ExecuteScalar(); if (n 0) this.Label4.Text = 查找到 + n + 条记录!; com = new SqlCommand(select s.sno,s.sname,s.ssex,s.sbirthday,s.sscore,c.classname from student s left outer join class c on s.classno=c.classno where s.sname= + ck + , con); -控件再绑定 else this.Label4.Text = 查找到0条记录!; 40SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务任务8-3-3 管理员操作模块中的课程管理员操作模块中的课程信息管理主页面信息管理主页面【任务分析】 课程信息管理页面窗体如图 84所示,它和学生信息维护页面非常相似。在页面初始加载时,就进行DataGrid控件Dgd_course的绑定操作,完成课程信息的显示,Dgd_course控件第0列“授课信息”列下的链接信息指向与此课程相关内容的显示页面,例如任课老师的信息等。管理员也可以在此页面对课程信息进行编辑和删除。 41SQLServer2005数据库基础项目八学生信息管理系统的构建(1)图 84课程信息管理页面42SQLServer2005数据库基础项目八学生信息管理系统的构建(1)程序代码加载页代码加载页代码protected void Page_Load(object sender, EventArgs e) this.Panel1.Visible = false; if (!IsPostBack) SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettingsdsn.ToString(); con.Open(); SqlCommand com = new SqlCommand(select cno,cname,credits from course, con); -绑定控件- 分页代码分页代码 protected void course_dg1_PageIndexChanged(object source, DataGridPageChangedEventArgs e) this.course_dg1.CurrentPageIndex = e.NewPageIndex; SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettingsdsn.ToString(); con.Open(); SqlCommand com = new SqlCommand(select cno,cname,credits from course, con); -绑定控件- 43SQLServer2005数据库基础项目八学生信息管理系统的构建(1)程序代码添加课程按钮事件添加课程按钮事件 protected void Button4_Click(object sender, EventArgs e) SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettingsdsn.ToString(); con.Open(); SqlCommand com1 = new SqlCommand(insert into course(cno,cname,credits) values(cno,cname,credits), con); SqlParameter sp1 = new SqlParameter(cno, SqlDbType.VarChar); SqlParameter sp2 = new SqlParameter(cname, SqlDbType.VarChar); SqlParameter sp3 = new SqlParameter(credits, SqlDbType.VarChar); sp1.Value = this.TextBox1.Text; sp2.Value = this.TextBox2.Text; sp3.Value = this.TextBox3.Text; com1.Parameters.Add(sp1); com1.Parameters.Add(sp2); com1.Parameters.Add(sp3); SqlCommand com2 = new SqlCommand(select count(*) from course where cno= + this.TextBox1.Text + , con); int n = Convert.ToInt32(com2.ExecuteScalar(); if (n 0) this.Label4.Text = 课程编号不能重复!; this.TextBox2.Text = ; else com1.ExecuteNonQuery(); this.Label4.Text = 插入记录成功!; SqlCommand com = new SqlCommand(select cno,cname,credits from course, con); -绑定控件- 44SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务任务4 管理员操作模块中的成绩信息管理员操作模块中的成绩信息管理主页面管理主页面【任务分析】【任务分析】 成绩管理页面窗体如图 85所示,该页面完成的功能较多,包括按选定的条件进行限定条件的成绩查询。同时,也可根据成绩范围对包含在该范围中的学生成绩进行统计,具体统计这门课的平均分、最高分、优秀人数和不及格人数等。此页面实现的关键就在于根据条件生成SQL语句。当“查询”、“统计”操作被触发,系统将完成对数据库中多个表的操作。45SQLServer2005数据库基础项目八学生信息管理系统的构建(1)程序代码图 85成绩管理页面46SQLServer2005数据库基础项目八学生信息管理系统的构建(1)程序代码成绩管理页面的后台支持类成绩管理页面的后台支持类(grade_manage.aspx.cs)的统计内容的主要相关的统计内容的主要相关代码:代码: 查询按钮事件查询按钮事件 protected void Button5_Click(object sender, EventArgs e) -连接数据库- if (this.DropDownList1.SelectedItem.Value.Equals(0)/判断查询条件 SqlCommand com = new SqlCommand(select c.cno,c.grade,s.sno,s.sname,s.classno from choice c left outer join student s on s.sno=c.sno where c.cno=+this.TextBox5.Text+, con); SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = com; DataSet ds = new DataSet(); sda.Fill(ds, t1); this.score_dg1.DataSource = ds.Tablest1.DefaultView; this.score_dg1.DataBind(); else if (this.DropDownList1.SelectedItem.Value.Equals(1) SqlCommand com = new SqlCommand(select c.cno,c.grade,s.sno,s.sname,s.classno from choice c left outer join student s on s.sno=c.sno where c.sno= + this.TextBox5.Text + , con); SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = com; DataSet ds = new DataSet(); sda.Fill(ds, t1); this.score_dg1.DataSource = ds.Tablest1.DefaultView; this.score_dg1.DataBind(); con.Close();47SQLServer2005数据库基础项目八学生信息管理系统的构建(1)程序代码统计按钮事件统计按钮事件 protected void Button6_Click(object sender, EventArgs e) SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettingsdsn.ToString(); con.Open(); string t4 = this.TextBox4.Text.Trim(); string t6 = this.TextBox6.Text.Trim(); if (this.DropDownList2.SelectedItem.Value.Equals(0)&this.DropDownList3.SelectedItem.Value.Equals(0)/判断统计条件 SqlCommand com = new SqlCommand(select max(grade) from choice where sno= + t4 + , con); int n = Convert.ToInt32(com.ExecuteScalar(); this.Label7.Text = this.TextBox4.Text + 的 + this.DropDownList3.SelectedItem.Text + 为 + n + 分; if (this.DropDownList2.SelectedItem.Value.Equals(0) & this.DropDownList3.SelectedItem.Value.Equals(1)/查个人时可以不输入课程 SqlCommand com = new SqlCommand(select avg(grade) from choice where sno= + t4 + , con); int n = Convert.ToInt32(com.ExecuteScalar();/返回记录数 this.Label7.Text = this.TextBox4.Text + 的 + this.DropDownList3.SelectedItem.Text + 为 + n + 分; 48SQLServer2005数据库基础项目八学生信息管理系统的构建(1)程序代码if (this.DropDownList2.SelectedItem.Value.Equals(1) & this.DropDownList3.SelectedItem.Value.Equals(0) SqlCommand com = new SqlCommand(select max(grade) from choice c left outer join student s on c.sno=s.sno where s.classno= + t4 + and c.cno= + t6 + , con); int n = Convert.ToInt32(com.ExecuteScalar(); this.Label7.Text = this.TextBox4.Text + 的 + this.DropDownList3.SelectedItem.Text + 为 + n + 分; SqlCommand com1 = new SqlCommand(select count(*) from choice c left outer join student s on c.sno=s.sno where s.classno= + t4 + and c.cno= + t6 + and grade=85 , con); n = Convert.ToInt32(com1.ExecuteScalar(); this.Label9.Text = n + 人; SqlCommand com2 = new SqlCommand(select count(*) from choice c left outer join student s on c.sno=s.sno where s.classno= + t4 + and c.cno= + t6 + and grade=85 , con); n = Convert.ToInt32(com1.ExecuteScalar(); this.Label9.Text = n + 人; SqlCommand com2 = new SqlCommand(select count(*) from choice c left outer join student s on c.sno=s.sno where s.classno= + t4 + and c.cno= + t6 + and grade 0) this.Label3.Text = 查找到 + n + 条记录!; com = new SqlCommand(select cno,cname,credits from course where cname= + ck1 + or cno=+ck2+, con); SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = com; DataSet ds = new DataSet(); sda.Fill(ds, t2); this.DataGrid1.DataSource = ds.Tablest2.DefaultView; this.DataGrid1.DataBind(); con.Close(); else this.Label3.Text = 查找到0条记录!; 59SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务任务2 学生操作模块中的所选课程浏览页面【任务分析】【任务分析】 点击【个人信息】按钮不仅可以查看个人信息情况还可进入学生所修课程浏览页面,如图 89所示:可查看自己已选的课程。图 89学生所修课程浏览页面60SQLServer2005数据库基础项目八学生信息管理系统的构建(1)程序代码个人所修课程浏览页面代码:个人所修课程浏览页面代码:以下是学生所修课程浏览页面后台支持类以下是学生所修课程浏览页面后台支持类(stcheck.spx.cs)的主要相关代码:的主要相关代码: if (!IsPostBack) SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettingsdsn.ToString(); con.Open(); SqlCommand com = new SqlCommand(select * from student where sno= + sno + , con); SqlDataReader dr = com.ExecuteReader(); dr.Read(); this.Label1.Text = dr1.ToString(); this.Label2.Text = dr0.ToString(); this.Label3.Text = dr2.ToString(); this.Label4.Text = dr3.ToString(); this.Label5.Text = dr4.ToString(); this.Label6.Text = dr5.ToString(); con.Close(); SqlConnection con1 = new SqlConnection(System.Configuration.ConfigurationManager.AppSettingsdsn.ToString(); con1.Open(); SqlCommand com1 = new SqlCommand(select cno,cname,Credits from st_course where sno= + sno + , con1); SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = com1; DataSet ds = new DataSet(); sda.Fill(ds, t1); this.DataGrid1.DataSource = ds.Tablest1.DefaultView; this.DataGrid1.DataBind(); con1.Close();61SQLServer2005数据库基础项目八学生信息管理系统的构建(1)任务任务3 学生操作模块中的成绩查询页面【任务分析】 点击【成绩查询】按钮可进入学生成绩查询页面如图 810所示:可查看所选课程的成绩。依据choice表和st_course表的关系使用左连接语句left outer join on进行查询。图 810学生课程信息页面62SQLServer2005数据库基础项目八学生信息管理系统的构建(1)程序代码以下是学生所修课程浏览页面后台支持类以下是学生所修课程浏览页面后台支持类(stscore.spx.cs)的主要相的主要相关代码:关代码: SqlConnection con1 = new SqlConnection(System.Configuration.ConfigurationManager.AppSettingsdsn.ToString(); con1.Open(); SqlCommand com1 = new SqlCommand(select c.cno,c.cname,c.Credits,s.grade from st_course c left outer join choice s on c.cno=s.cno and c.sno=s.sno where c.sno= + sno + , con1); SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = com1; DataSet ds = new DataSet(); sda.Fill(ds, t1); this.DataGrid1.DataSource = ds.Tablest1.DefaultView; this.DataGrid1.DataBind(); con1.Close();63SQLServer2005数据库基础项目八学生信息管理系统的构建(1)练习 制作一个具有增删改查功能的库存管理系统,页面仿照此项目,熟练练习数据库中记录的操作。64SQLServer2005数据库基础项目八学生信息管理系统的构建(1)
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号