学生管理系统的设计与实现

学生管理系统的设计与实现

ID:443937

大小:1.43 MB

页数:82页

时间:2017-08-02

上传者:U-960
学生管理系统的设计与实现_第1页
学生管理系统的设计与实现_第2页
学生管理系统的设计与实现_第3页
学生管理系统的设计与实现_第4页
学生管理系统的设计与实现_第5页
资源描述:

《学生管理系统的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

XXXX学院毕业设计(论文)基于ASP.NET的学生管理系统学院:专业:班级:学号:学生姓名:指导教师:. 摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。本文介绍了在ASP.net环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。通过分析某一学校学生管理的不足,创建了一套行之有效的计算机管理学生的方案。文章介绍了学生管理信息系统的系统分析部分,包括可行性分析、业务流程分析等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;系统实现部分说明了几个主要模块的算法,本系统界面友好,操作简单,比较实用。【关键字】:管理信息系统、学生管理、ASP.net应用。. SummaryWithmoreandmorewidespreadandprofoundapplicationofinformationtechnologyinmanagement,theimplementofmanagementinformationsystemhasbecomematureintechnologystepbystep.Managinginformationsystemisanewsubject.Enterpriseneedsexistenceanddevelopment,soenterpriseactivitiesshouldbeorganizedefficientlyandorganically,whichmeanstighteninguptheenterprisemanagementandstrengtheningeffectivemanagementofanyresource(staff,finance,property,etc.)internaltheenterprise,andalsoestablishingamanagementinformationsystemfittinginwithitsowncharacteristics.Thisarticleintroducesthedetailedprocessofexploringamanagementinformationsystemundertheenvironmentofasp.net,utilizing“Top-Bottom”overallplanandastrategyaccordingto“Bottom-Top”applicationandexploitation.Thatistoestablishasetofeffectiveschemeforstudentmanagementbycomputer,throughanalyzingdisadvantagesofstudentmanagementbyhumanresources.Thisarticleemphasizesonthreesections.Thesystemanalysissectionofstudentmanagementinformationincludesfeasibleanalysis,managementfunctionanalysis.Thesystemdesignsectionmainlyfocusesonsystemfunctiondesignanddatabasedesignanddatanumberdesign.Andthesystemrealizationsectionhasprovidedseveralmajorfunction,togetherwiththemainwindowsandprograms.Thiseconomicalandpragmaticsystemhasexplicitinterface,withsimpleoperation.[Keywords]:MIS、studentmanagement、asp.netapplication. 目录摘要2Summary3一系统概述41.1系统及需求分析4二开发环境52.1ASP.NET简介52.2SQLServer2000简介52.3结构化查询语句SQL简介6三学生管理信息系统设计93.1概述93.2需求分析93.3系统框架123.4系统配置153.5数据库分析173.6数据库创建243.7数据库连接/数据库具体配置264主要界面及相关代码284.1学生管理系统首页284.2学生班级管理维护页面314.3学生班级添加页面374.4课程信息管理页面424.5录入成绩页面474.6添加教师页面514.7添加课程页面554.8课程类别管理页面674.9用户管理页面72总结78致谢80参考文献81. 一系统概述本学生信息管理系统可以说是一个综合性的学校学生管理系统,这它集成了学生学籍管理系统、学生成绩管理系统、学生档案管理系统、学生缴费管理系统等多种功能,因而具有较强的实用性和先进性。1.1系统及需求分析1.1.1系统需求通过调查,要求系统需要有以下功能:⑴由于操作人员的计算机知识普遍较差,要求有良好的人机界面;⑵由于该系统的使用对象多,要求有较好的权限管理;⑶原始数据修改简单方便,支持多条件修改⑷方便的数据查询,支持多条件查询;⑸在相应的权限下,删除数据方便简单,数据稳定性好;⑹数据计算自动完成,尽量减少人工干预;1.1.2可行性分析由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。且学校用于学生管理的微机都是PIII以上的机器,在存储量、速度方面都能满足数据库运行的要求。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。. 二开发环境2.1ASP.NET简介ASP.NET是由ASP发展而来,它是使用.NET框架提供的编程类库构建而成的。使用ASP.NET创建、管理和部署Web应用程序变得非常容易。开发人员可以直接用ASP.NET服务器控件,这些控件封装了公共的、用户HTML用户界面的各种元素(如文本框、下拉菜单等)。实际上,这些控件运行在Web服务器上,它们将用户界面转换成HTML格式后再发送给浏览器。再服务器上,控件负责将面向对象的编程模型提供给Web开发者,这种编程模型提供面向对象编程技术的丰富功能。ASP.NET还提供一些基本结构服务(如会话状态管理和进程重启服务),这些服务大大减少了开发人员需要编写的代码量,并使应用程序的可靠性得到大幅度的提高。ASP.NET还允许开发人员将软件作为一项服务来提供。通过使用ASP.NETWeb服务功能,开发人员只需进行简单的业务逻辑编程,而由ASP.NET基本结构负责通过SOAP来提供服务。ASP.NET是作为.NETFrameworkSDK的一部分提供的。.NETFrameworkSDK可以运行再WindowsXP,Windows2000+ServicePack1及WindowsNT4.0+ServicePack6环境中。另外,服务器还需安装InternetExplorer5.5和MDAC2.6(MicrosoftDataAccessComponents2.6)2.2SQLServer2000简介SQLServer2000是一个功能强大的新一代的数据库管理系统。与前一代的产品相比,SQLServer在可伸缩性、可用性和可管理性等方面有了显著的改进和提高。MicrosoftSQLServer2000是由一系列相互协作的组件组成,能满足最大的Web站点和企业数据处理系统存储和分析数据的需要。它主要由以下几个组件组成:关系数据库组件、数据库构架、管理构架、复制构架、数据仓库和联机分析处理分析和应用程序开发构架等。. SQLServer2000完全支持Web。通过Web可以查询、分析和处理数据。在SQLServer2000中使用可扩展标记语言(XML)可以在松散耦合系统之间交换数据。从浏览器通过防火墙可方便而安全地访问数据,并可对有格式文档执行快速全文检索。分析和链接联机分析处理(OLAP)多维数据集,即使在Web上也是如此。执行点击流分析,以了解Web用户的情况。高度可扩展性和可靠性。使用增强的可扩展性和可靠性功能,可无限制地扩容。服务器操作系统最多可支持32个CPU和64GB的RAM。2.3结构化查询语句SQL简介结构化查询语句SQL(StructuredQueryLanguage)简介SQL(StructuredQueryLanguage)语言是一种介于关系代数与关系验算之间的结构化查询语句,其功能并不仅仅是查询。SQL是一个通用的、功能极强的关系数据库语言。SQL语言集数据查询(DataQuery)、数据操纵(DataManipulation)、数据定义(DataDefinition)和数据控制(DataControl)功能于一体,主要特点包括:1.综合统一2.高度非过程化3.面向集合的操作方式4.以同一种语法结构提供两种使用方式5.语言简介,易学易用定义基本表SQL语言使用CREATETABLE语句定义基本表,其一般格式如下:CREATETABLE<表名>(<列名><数据类型>[列级完整性约束条件][,<列名><数据类型>[列级完整性约束条件]]…[,<表级完整性约束条件>]);修改基本表SQL语言使用ALTERTABLE修改基本表,其一般格式为:ALTERTABLE<表名>[ADD<新列名><数据类型>[完整性约束]]. [DROP<完整性约束名>][MODIFY<列名><数据类型>];查询SQL语言提供了SELECT语句进行数据库的查询,该语句具有灵活的使用方式和丰富的功能。其一般格式为:SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]…FROM<表名或视图名>[,<表名或视图名>]…[WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC|DESC]];插入数据1.插入单个元组插入单个元组的INSERT语句的格式为:INSERTINTO<表名>[(<属性列1>[,<属性列2>…])]VALUES(<常量1>[,<常量2>]…);2.插入子查询结果插入子查询结果的INSERT语句的格式为:INSERTINTO<表名>[(<属性列1>[,<属性列2>…])]子查询;修改数据修改操作语句的一般格式为:UPDATE<表名>SET<列名>=<表达式>[,<列名>=<表达式>]…[WHERE<条件>];删除数据删除语句的一般格式为:DELETEFROM<表名>. [WHERE<条件>];. 三学生管理信息系统设计学生信息管理系统主要是处理学生.教师.课程.班级以及它们互相之间的关系信息。学生管理信息系统是一个比较古老的应用,随着近些年计算机技术水平的高速发展,学生管理信息系统也在不断的发展扩充其功能,从单一的学生成绩管理发展到现在的统一学生资料管理,此设计主要讲叙它的设计和实现。3.1概述随着学校规模的不断扩大,学生数量的急剧增加,有关学生的各种信息量也成倍的增长。面对庞大的信息量,就要有学生管理信息系统来提高学生管理工作效率。通过这样的系统可以做到信息的管理规范.科学统计和快速查询。从而减少管理方面的工作量。有效的管理学生所有信息就是学生管理系统完成的功能。此学生管理系统是基于.net技术,采用.net技术构建,在此称为SMS。在行使维护功能方面包括:学生管理,班级管理,教师管理,课程管理,学生选课及其成绩管理。在后面将一一介绍。3.2需求分析需求分析是数据库信息管理系统开发的第一步也是最重要一步。需求分析就是描述系统的需求,通过定义系统种的关键域来建立模型,分析的根本目的的是在开发者和提出需求的人之间建立的一种理解和沟通机智。3.2.1需求功能这个是一个学生管理系统,我们的目标是提高学会管理工作的效率,具有对学生个人信息,课程信息,所选课程信息进行管理及维护的功能。学生可以通过此系统进行个人信息,考试成绩查询以及完成选课功能。系统开发的总体任务是实现学生信息管理的系统化,规范化和自动化。. 总之,学生管理系统的功能需求包括管理员对功能的需求和学生对功能的需求两大部分,如下所列:·管理员对功能的需求管理员权限最大,可以对学生,班级,课程情况进行统一的管理,管理员对功能的需求细分如下:有关学生信息的浏览,包括学生的姓名,性别,民族,出生年月,入学日期,所在班级,籍贯及备注信息;学生信息的添加,本系统由管理员对学生的基本信息进行添加;学生信息的修改,删除;班级管理信息的浏览,包括班级设置,年级信息等;班级管理信息的添加;班级管理信息的修改,删除;教师信息的添加,本系统管理员对教师的基本信息进行添加;教师权限的修改,管理员可以将教师的权限设为管理员;学校基本课程的浏览,包括课程名,课程类型,学时,学分和课程具体描述;学校基本课程的添加;学校基本课程的修改,删除;学校对所设课程进行教师分配;学生成绩的浏览与统计,可按成绩具体范围(如系,班级等),课号,年度,统计内容方面对成绩进行统计;学生成绩信息的添加;学生成绩信息的修改,删除;学生选课人数的统计。·学生对功能的需求学生只是利用此系统进行与自己由关的信息查询,输入等,不必关心其他的内容,学生对功能的需求如下:浏览个人基本信息,具体内容包括姓名,学号,民族,出生日期,籍贯,所在班级,备注等;学生登陆系统后,修改个人信息,为了保证系统安全性,只要求学生修改个人密码;. 浏览课程信息,具体内容包括课程名,课程类型,学时,学分和课程的具体描述,任课教师;学生利用此系统选修课程,在选课过程中,学生可查询待选课程的基本信息及教师情况,并可浏览截止当前选课的人数;浏览个人选课情况;浏览个人成绩。3.2.2性能需求一般的性能需求是指互相消息传递顺利,协议分析正确,界面友好,运行时间满足使用需要,安全性得到完全保证。就实际情况,在高系统配置,高网络带宽很容易得到保证的情况下,我们最需要考虑的性能就是系统安全性问题。在开发系统的每个阶段,均需要考虑彼此间的认证与授权。尤其要注意认证,简单地说谁是特定用户,并针对安全源验证该用户的身份。在处理完识别用户的方法后,必须利用一种方法以向用户授权,从而能够使用系统的特定功能。也就是说,需要一种方法来决定允许特定用户进行什么样的操作。3.3系统框架3.3.1系统流程分析. 为了更清楚的说明系统框架对本系统有一个整体上的初步认识,我们给出了系统流程图course.aspxstudent.aspx5----2teacher.aspx管理员登陆student-course..aspx用户接口grade.aspxclasses.aspxDefault.aspxquery.aspx学生登陆grade-query.aspxsortcourse.aspx用户首先登入到初始页面default.aspx,如果以管理员的身份登录,则被系统引导至学生信息维护页student.aspx,该页是用户最常用的功能页。管理员可以在此页中进行班级管理和教师管理,通过班级管理页classes.aspx,可以添加新班级,查询班级信息等,通过教师管理页teacher.aspx,可以添加新教师,查询教师信息及将教师设为管理员,管理员也可以在信息维护中维护学生的个人信息,该页设置了通向其他管理页面的连接,如添加新学生页addstudent.aspx,课程管理页course.aspx和学生选课管理页student_course.aspx,以及成绩管理页grade.aspx,另外从课程管理页可以进入添加新课程页addcourse.aspx,各个管理页面的功能和各个管理模块挂钩。如果是本校的注册学生,则被系统引导至个人信息页quert.aspx,该页只要显示此登陆学生的个人信息,通过此页此学生可以进入修改密码页updatepwd.aspx,成绩查询页grade_query.aspx,以及选课浏览页sortcourse.aspx.. 3.3.2系统功能模块分析SMS主要的功能包括以下几个方面:用户管理(管理员,老师管理和学生管理),课程管理,班级管理,成绩管理选课管理。设计图如5--3所示,除此之外,系统还包含了教师管理,班级管理等辅助功能模块,用于协调4个主模块。用户管理模块学生管理系统用户管理管理员管理班级管理选课管理课程管理学生管理成绩管理该模块由两个子模块构成,分别示管理员与教师管理模块和学生管理模块。主要负责管理员与教师以及学生信息的管理功能,具体参看管理员与教师管理子模块和学生管理子模块的模块功能描述。管理员与教师管理子模块该模块主要负责管理系统管理员的信息。它为用户管理模块的一个子模块。主要功能是将本校的教师权限设为管理员。管理员课添加新教师信息,每个教师有唯一的编号,之后通过把教师加为管理员,而令此教师具有管理员的权限,从而教师可以登陆系统进行管理员的相关操作。学生管理子模块. 该模块主要负责管理所有在校注册学生的个人信息。它为用户管理模块的一个子模块。主要功能包括添加,删除,修改,查找学生信息。每个学生有唯一的学号,管理员添加新生后,新生即可登陆此系统浏览个人信息,登陆此系统的用户名和密码默认都是此学生的学号。课程管理模块该模块负责管理本校所有的课程信息。主要功能包括添加,删除,修改,查找课程信息。只有管理员才具有对课程信息进行维护的权限,课程的类型分三种:公共课,专业课和选修课。课程管理模块是选课管理模块的基础,只有在课程管理中添有选修课的信息,学生才能进行选课。选课管理模块该模块负责选课的管理。主要功能包括删除,统计学生选课信息。它以在课程管理系统中维护号的信息作为基础,既可以对选修课程进行管理,也可以对统计选课人数,并根据学生选课时间先后决定最终选修此课的同学。成绩管理模块学生学的每一门课显然最后要有成绩,查询的内肉包括课程名称,学分,成绩等。只有管理员可以录入学生每一门课的成绩,并能进行修改,学生只能查询自己所学课程的成绩,并且可以查询每一学期学生所学课程所获总学分,前提是成绩必须及格,否则将没有此课的成绩。班级管理模块该模块负责班级的管理。主要功能包括添加,删除和修改班级信息,以及对班级信息的查询。只有管理员才具有对班级管理信息进行维护的权限。学生信息的添加是建立在班级信息维护的基础上,每个学生必然属于特定的班级。并且在管理员对学生成绩查询统计时,可以统计各个班级的平均分,最高分。. 3.4系统配置3.4.1软件配置软件配置主要包括数据库的选择和操作系统的选择。学生管理系统的软件配置要根据用户对系统稳定的要求,系统的容量以及用户维护水平来确定。(1)数据库的选择可以根据数据量的大小选择大小步同的数据库,如表5-1所示。其中数据量示指数据库中需存放表但的最大记录数。表5---1学生管理系统数据库选择用户数据量记录稳定性要求维护水平备选数据库一般学校50000~200000较高较好SQLServer,Oracle大型院校200000以上高高Oracle当然,这种选择不是绝对的。有时,一个学校尽管人数不多,但人员变动很大,要求数据库的吞吐量和稳定性较高,这就需要选择更好的数据库。也有些情况,由于建设经费的限制,只能选择较为便宜的数据库。数据库还要考虑与操作系统的配合,此设计选用SQLServer2000数据库。(2)操作系统的选择可以根据用户量的大小选择不同的操作系统。服务器端的选择如表5-2所示表5----2学生管理系统操作系统的选择用户每秒数据库并发数据访问的记录数稳定性要求维护水平备选操作系统一般学校500~2000较高较好WindowsNT,Windows2000Server,WindowsXP大型院校2000以上高好WindowsNT,Windows2000Server,WindowsXP,Linux,UNIX. 此设计采用Windows2000Server操作系统3.4.2硬件配置硬件配置主要包括客服端硬件和服务器端硬件的选择。学生管理系统的硬件配置要根据拥护对系统的稳定性要求,系统的容量,系统吞吐量以及用户维护水平来确定。(1)客服硬件选择可以根据稳定性要求选择不同的客户端。一般情况下,对客服端的要求不高。如表5-3所示。表5----3学生管理系统客户端硬件的选择用户稳定性要求备选客服端学生客户端低PentiumCPU/64MB/4GB管理员客户端中PentiuIII/256MB/20GB(2)服务器端硬件选择可以根据数据量和吞吐量的大小选择不同的服务器硬件。选择服务器端的选择如表5-4所示表5----4学生管理系统服务器端硬件的选择用户每秒数据库并发数据访问记录稳定性要求维护水平备选服务器一般学校500~2000较高较好小型计算机/双热备或者XEON4CPU/4GMB/RAID56*72GB大型院校2000以上高好小型计算机/双热备或者XEON4CPU/4GMB/RAID56*72GB. 当然,这种配置不是绝对的,这里指给了参考配置的范围。具体配置需要根据用户的需求精确计算。5.4.3网络配置学生管理系统的网络配置一般有如下几种类型。(1)单机模式:即服务器和客服端在一台计算机上。(2)百兆模式:计算机网络的速度为百兆,主要采用百兆交换机把用户端和服务器连接(3)千兆模式:计算机网络的速度为千兆,实际上没有必要给每个节点都配备千兆网络接口,只需要给服务器端千兆接口即可。可根据用户情况选择不同的网络配置如表5-5所示。表5----5学生管理系统网络配置的选择用户每秒数据库并发数据访问记录数稳定性要求维护水平备选网络访案一般学校500~2000较高较好百兆模式大型院校2000以上高好千兆模式3.5数据库分析根据所涉及的学生管理信息系统的总数据结构,采用构建E-R图,导出系统数据表的分析方法,对学生管理信息系统作如下数据分析。3.5.1系统E-R图根据前面对系统做的需求分析,模块设计就可以作出能够满足用户需求的各种实体以及它们之间的关系。本系统根据上面的设计规划出:用户信息实体,学生信息实体,课程信息实体,班级信息实体,教师信息实体,学生-课程信息实体,教师-课程管理实体,下面给出系统数据库E-R图,如图5-6所示。图5----6. 学生信息课程信息教师信息班级信息包含学生-课程授课教师-课程学生管理系统用户实体图,如图5-7所示用户编号用户密码用户类型用户信息图5----7学生管理系统学生信息实体图,如图5-8所示. 学号购买标记购买标记购买标记购买日期生日民族性别学生姓名学生信息图5---8学生管理系统课程信息实体图,如图5-9所示课程编号学分具体描述学时类型名称课程信息图5---9学生管理系统班级信息实体图,如图5-10所示班级编号所在学院班主任所在系班级名称班级信息图5---10学生管理系统教师信息实体图,如图5-11所示. 教师编号教师姓名所属学院教师信息图5---11学生管理系统学生-课程信息实体图,如图5-12所示记录编号学期年度成绩课程编号学生学号学生-课程记录图5—12学生管理系统教师-课程信息实体图,如图5-13所示记录编号所属学院班级号课程编号教师编号教师-课程记录图5---13在本系统中利用PowerDesigner设计E-R模型。PowerDesigner的概念数据模型(CDM)把现实的信息简化成为实体与实体之间的联系,它与DBMS无关。CDM的建立示一个比较复杂的过程,实体关系图的分析结果也非常复杂,一般情况下使用从简到繁的方式进行设计。首先从大的方面中设计出各个实体之间的关系,然后在这个关系的基础上对各个细节进行细化。. 如图5-14所示,为学生管理系统的实体关系简图学生课程教师班级图5-14在进行详细设计的实体图设计时,除了有学生,班级,教师,课程基本实体分别记录学生,班级,教师,课程的基本信息外,考虑到便于系统管理员管理学生用户,设计了用实体用户,记录用户登陆系统时的用户名,密码以及权限。同时对于学生选课和教师教课都应该有记录,因此设计了学生选课和教师教课表,其中学生选课表里,包含了学生选课的内容和各门成绩,便于管理员对成绩的录入,修改以及用户对成绩的查询和检索;教师教课表的内容主要时包含教师所教课程的信息。3.5.2表/字段分析表/字段分析是建立在试题关系图基础上的。表字段分析后也可以利用Pewrdesigner建立数据库模型。首先是用户信息数据表(Users),用于存储学生管理系统所有参与人员的信息。. 用户信息数据表(Users)列名数据类型大小字段描述User_idVarchar50表示用户名设为主键User_PasswordVarchar50记录用户登陆本系统时的密码User_PowerInt4记录用户类型,0-本校注册生,1-管理员在学生管理系统中,最重要的对象是学生,系统设计了学生信息数据表(student),用于存储本校所有学生信息。学生信息数据表(student)列名数据类型大小字段描述Student_idVarchar50记录学生的学号,设为主键Student_nameVarchar50记录学生姓名Student_sexChar5记录学生性别Student_nationChar5记录学生民族Student_birthdayDatetime8记录学生出生日期Student_timeDatetime8记录学生入学时间Student_classidVarchar50记录学生所在班级号Student_homeVarchar50记录学生家庭所在地Student_elseVarchar50备注学生所在班级相对独立,系统用班级信息数据表(class)记录本学校所有班级信息。班级信息数据表(class)列名数据类型大小字段描述Class_idVarchar50记录班级号,设为主键Class_nameVarchar50班级全称Class_departmentVarchar50记录班级所在系别. Class_collegeVarchar50记录班级所在学院Class_teacheridVarchar50记录本班级班主任号系统构建教师信息数据表(teacher)用来存储本校所有教师信息。教师信息数据表(teacher)列名数据类型大小字段描述Teacher_idVarchar50记录教师号,设为主键Teacher_nameVarchar50记录教师姓名Teacher_collegeVarchar50记录教师所在学院每个教师授什么课都必须有记录,而且一门课可能会有很多老师授课。因此必须包括课程名称,年度,学期,班级号等,以便管理员和学生查询系统,此系统采用教师-课程记录数据表(teacher-course)记录以上信息。教师-课程记录数据表(teacher-course)列名数据类型大小字段描述IDInt4教师-课程记录唯一ID号,设为主键Teacher_idVarchar50记录教师号Course_idVarchar50记录教师所在任课号Class_idVarchar50记录教师所在班级号Course_yearChar5记录年度学期学生总是离不开课程的,系统设计了课程信息数据表(course),用于存储所有的课程信息课程信息数据表(course)列名数据类型大小字段描述Course_idVarchar50记录课程号,设为主键. Course_nameVarchar50记录课程名称Course_periodInt4记录课程学时Course_creditInt4记录课程学分Course_kindInt4记录课程类型:0公共课,1专业课,2选修课Course_descibleVarchar50记录课程具体描述学生所学的课程都会有成绩,并且每个学生每一门课只有一个成绩。系统设计了学生-课程信息数据表(student-course)用于存储本校所有学生所学的课程信息学生-课程信息数据表(student-course)列名数据类型大小字段描述IDBigint8学生-课程记录唯一ID,设为主键Student_idVarchar50记录学生学号Course_idVarchar50记录学生所学课程号Student_gardeInt4记录学生成绩Course_yearChar5记录年度学期3.6数据库创建3.6.1创建数据库在MicrosoftSQLServer2000中,创建SMS数据库的步骤如下:(1)启动MicrosoftSQLServer企业管理器。(2)在控制台树中右击“数据库”节点,然后从快捷菜单中选择“新建数据库”命令,打开“数据库属性”对话框。(3)输入数据库的名称SMS,单击“确定”按扭,结束表命令操作。数据库创建完毕。3.6.2创建表. 创建完CMS数据库后,开始往数据库里添加表。我们把添加过程进行罗列。下面是创建SMS系统Book表的操作步骤:(1)在MicrosoftSQLServer企业管理器中,展开“数据库”和SMS节点。(2)右击“表”节点,然后从快捷菜单中选择“新建表”命令。(3)设计表的结构,包括设计表中每个字段的名称,类型,和长度等(4)在拟创建的SMS的users表中,我们选中User-id字段,然后单击工具栏的“设置主键”按扭,将此字段设置为主键。作为主键的字段不允许为空。(5)单击工具栏的“保存”按扭,然后在弹出的对话框中输入表名users。(6)单击“确定”按扭,返回表设计器。(7)单击标题栏的“关闭”按扭。按同样的方法创建SMS中的其他表。创建完毕后的SMS表项列表。创建表后,如果要往表里添加记录,请单击“表”节点,用户管理表的超级管理员信息需要在系统运行前进行初始维护。方法如下:在右边窗格中右击相应的表,然后从快捷菜单中选择“打开表”子菜单,再选择“返回所有行”命令,接着输入每条记录的各个字段的值,在SMS系统中我们打开users表添加一项管理员的记录,作为系统以后初次运行的第一操作员。3.6.3创建存储过程. 构建了数据库的表结构以后,接下来创建负责表中信息选择,添加,更新以及删除的相关过程,由于存储过程底册应用会给系统带来优化并提高效率,系统使用了如下5个存储过程。1.select_student_1存储过程2.insert_student_1存储过程3.insert_course_1存储过程4.insert_class_1存储过程5.update_student_1存储过程3.7数据库连接/数据库具体配置系统采用对数据库配置进行统一管理的方法,即将程序中用到的所有连接字符串信息统一放到Config.web配置文档中,在程序中对该文档的这一配置进行调用,实现统一改统一用。对于数据库调用字符串,数据库使用的是本地数据库,数据源设置为localhost;用户ID设置赋值为系统默认的sa;PWD赋值为sa,这一参数与数据库安装时对sa用户密码设置有关,数据库名称设为SMS1SMS中Config.web的配置文档在文档中,SMS数据库设置部分集中〈appsetting〉与〈/appsetting〉之间,主要的是数据库连接字符串。而其他的设置主要是面向应用程序,提供服务。Config.web的配置文档的相关主要代码如下:. 2.调用SMS中Config.web的代码在程序读取Config.web的配置文档中的数据库设置信息,只要使用如下语句即可。语句列举如下:Stringstrconn=ConfigurationSettings.AppSettings[“dsn”];. 只要在程序文件中加如该行代码,就可以轻松的将数据库连接字段读取到字符串strconn中,并且每个配置段处理器只需申请一次即可,子目录的Web.config文件会自动继承配置文件Machine.config,并且在次序中不用重新申请。4主要界面及相关代码4.1学生管理系统首页学生管理系统首页具有自动导航功能,不同用户登陆时将根据不同的身份进入不同的系统功能页。. 代码入下usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;usingSystem.Configuration;namespacesms{publicclass_default:System.Web.UI.Page{protectedSystem.Web.UI.WebControls.TextBoxTbx_userid;protectedSystem.Web.UI.WebControls.TextBoxTbx_userpwd;protectedSystem.Web.UI.WebControls.LabelLbl_note;. protectedSystem.Web.UI.WebControls.ButtonBtn_enter;privatevoidPage_Load(objectsender,System.EventArgse){//在此处放置用户代码以初始化页面}#regionWebFormDesignergeneratedcodeoverrideprotectedvoidOnInit(EventArgse){////CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。//InitializeComponent();base.OnInit(e);}privatevoidInitializeComponent(){this.Btn_enter.Click+=newSystem.EventHandler(this.Btn_enter_Click);this.Load+=newSystem.EventHandler(this.Page_Load);}#endregionprivatevoidBtn_enter_Click(objectsender,System.EventArgse){stringstrconn=ConfigurationSettings.AppSettings["dsn"];SqlConnectioncn=newSqlConnection(strconn);cn.Open();stringstrsql="select*fromuserswhereUser_id='"+Tbx_userid.Text+"'andUser_password='"+Tbx_userpwd.Text+"'";SqlCommandcm=newSqlCommand(strsql,cn);SqlDataReaderdr=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();}}}4.2学生班级管理维护页面学生信息维护模块时SMS重管理学生学籍的部分。页面采用DataGrid控件的Dgd_student与DataSet数据集的绑定返回所有学生信息,可以对学生信息进行修改和删除。代码如下:usingSystem;usingSystem.Collections;. usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;usingSystem.Configuration;namespacesms{///

///student的摘要说明。///publicclassstudent:System.Web.UI.Page{protectedSystem.Web.UI.WebControls.LinkButtonLbtn_course;protectedSystem.Web.UI.WebControls.LinkButtonLbtn_sortcourse;protectedSystem.Web.UI.WebControls.DataGridDgd_student;protectedSystem.Web.UI.WebControls.ButtonBtn_all;protectedSystem.Web.UI.WebControls.PanelPnl_sort;protectedSystem.Web.UI.WebControls.TextBoxTbx_sortid;protectedSystem.Web.UI.WebControls.ButtonBtn_ok;SqlConnectioncn;protectedSystem.Web.UI.WebControls.ButtonBtn_search;protectedSystem.Web.UI.WebControls.LabelLbl_note;protectedSystem.Web.UI.WebControls.LinkButtonLbtn_add;protectedSystem.Web.UI.WebControls.TextBoxTbx_name;protectedSystem.Web.UI.WebControls.ButtonBtn_exit;protectedSystem.Web.UI.WebControls.LinkButtonLbtn_grade;protectedSystem.Web.UI.WebControls.LinkButtonLbtn_addclass;protectedSystem.Web.UI.WebControls.LinkButtonLbtn_addteacher;protectedSystem.Web.UI.WebControls.LinkButtonLbtn_student;stringstrsql;privatevoidPage_Load(objectsender,System.EventArgse){stringstrconn=ConfigurationSettings.AppSettings["dsn"];cn=newSqlConnection(strconn);. if(!IsPostBack)Bindgrid();}#regionWebFormDesignergeneratedcodeoverrideprotectedvoidOnInit(EventArgse){InitializeComponent();base.OnInit(e);}privatevoidInitializeComponent(){this.Lbtn_addclass.Click+=newSystem.EventHandler(this.Lbtn_addclass_Click);this.Lbtn_addteacher.Click+=newSystem.EventHandler(this.Lbtn_addteacher_Click);this.Lbtn_course.Click+=newSystem.EventHandler(this.Lbtn_course_Click);this.Lbtn_sortcourse.Click+=newSystem.EventHandler(this.Lbtn_sortcourse_Click);this.Lbtn_grade.Click+=newSystem.EventHandler(this.Lbtn_grade_Click);this.Btn_search.Click+=newSystem.EventHandler(this.Btn_search_Click);this.Btn_ok.Click+=newSystem.EventHandler(this.Btn_ok_Click);this.Lbtn_add.Click+=newSystem.EventHandler(this.Lbtn_add_Click);this.Btn_all.Click+=newSystem.EventHandler(this.Btn_all_Click);this.Btn_exit.Click+=newSystem.EventHandler(this.Btn_exit_Click);this.Load+=newSystem.EventHandler(this.Page_Load);}#endregionprivatevoidBtn_search_Click(objectsender,System.EventArgse){Pnl_sort.Visible=true;}privatevoidBtn_all_Click(objectsender,System.EventArgse){Pnl_sort.Visible=false;Bindgrid();}publicvoidDataGrid_Page(objectsender,DataGridPageChangedEventArgse){Dgd_student.CurrentPageIndex=e.NewPageIndex;. Bindgrid();}publicvoidDataGrid_cancel(objectsender,DataGridCommandEventArgse){Dgd_student.EditItemIndex=-1;Bindgrid();}publicvoidDataGrid_edit(objectsender,DataGridCommandEventArgse){Dgd_student.EditItemIndex=(int)e.Item.ItemIndex;Bindgrid();}publicvoidDataGrid_update(objectsender,DataGridCommandEventArgse){stringstrsql="updatestudentsetStudent_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_elsewhereStudent_id=@Student_id";SqlCommandcm=newSqlCommand(strsql,cn);try{cm.Parameters.Add(newSqlParameter("@Student_name",SqlDbType.VarChar,50));cm.Parameters.Add(newSqlParameter("@Student_sex",SqlDbType.Char,10));cm.Parameters.Add(newSqlParameter("@Student_nation",SqlDbType.Char,10));cm.Parameters.Add(newSqlParameter("@Student_birthday",SqlDbType.DateTime,8));cm.Parameters.Add(newSqlParameter("@Student_time",SqlDbType.DateTime,8));cm.Parameters.Add(newSqlParameter("@Student_classid",SqlDbType.VarChar,50));cm.Parameters.Add(newSqlParameter("@Student_home",SqlDbType.VarChar,50));cm.Parameters.Add(newSqlParameter("@Student_else",SqlDbType.VarChar,50));cm.Parameters.Add(newSqlParameter("@Student_id",SqlDbType.VarChar,50));stringcolvalue=((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();}publicvoidDataGrid_delete(objectsender,DataGridCommandEventArgse){stringstrsql="deletefromstudentwhereStudent_id=@userid";SqlCommandcm=newSqlCommand(strsql,cn);cm.Parameters.Add(newSqlParameter("@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();}publicvoidBindgrid(){strsql="select*fromstudent";SqlDataAdapterda=newSqlDataAdapter(strsql,cn);DataSetds=newDataSet();da.Fill(ds);Dgd_student.DataSource=ds;Dgd_student.DataBind();}privatevoidBtn_ok_Click(objectsender,System.EventArgse){strsql="select*fromstudentwhereStudent_id='"+Tbx_sortid.Text+"'orStudent_name='"+Tbx_name.Text+"'";SqlDataAdapterda=newSqlDataAdapter(strsql,cn);DataSetds=newDataSet();da.Fill(ds);Dgd_student.DataSource=ds;Dgd_student.DataBind();}privatevoidLbtn_course_Click(objectsender,System.EventArgse){Response.Redirect("course.aspx");}privatevoidLbtn_sortcourse_Click(objectsender,System.EventArgse){Response.Redirect("student_course.aspx");}privatevoidLbtn_add_Click(objectsender,System.EventArgse){Response.Redirect("addstudent.aspx");}privatevoidBtn_exit_Click(objectsender,System.EventArgse). {Response.Redirect("default.aspx");}privatevoidLbtn_grade_Click(objectsender,System.EventArgse){Response.Redirect("grade_manage.aspx");}privatevoidLbtn_addclass_Click(objectsender,System.EventArgse){Response.Redirect("classes.aspx");}privatevoidLbtn_addteacher_Click(objectsender,System.EventArgse){Response.Redirect("teacher.aspx");}privatevoidLbtn_student_Click(objectsender,System.EventArgse){Response.Redirect("student.aspx");}}}4.3学生班级添加页面学生信息添加页面主要负责往数据库里添加数据。后台支持事件主要为Btn_ok_Click()事件负责当用户单击“确定”按钮后的数据库添加操作。利用RequiredFieldValidator控件可以用来验证用户输入信息是否为空。若输入学号存在,利用CustomValidator验证控件,触发ServerValidator事件,判断是否存在此学号的学生。“重置”按钮的click事件将完成刷新此页面的功能。. 代码如下:usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;usingSystem.Configuration;namespacesms{//////addstudent的摘要说明。///publicclassaddstudent:System.Web.UI.Page{. protectedSystem.Web.UI.WebControls.TextBoxTbx_id;protectedSystem.Web.UI.WebControls.TextBoxTbx_name;protectedSystem.Web.UI.WebControls.TextBoxTbx_nation;protectedSystem.Web.UI.WebControls.TextBoxTbx_birthday;protectedSystem.Web.UI.WebControls.TextBoxTbx_time;protectedSystem.Web.UI.WebControls.TextBoxTbx_home;protectedSystem.Web.UI.WebControls.TextBoxTbx_else;protectedSystem.Web.UI.WebControls.DropDownListDdl_sex;protectedSystem.Web.UI.WebControls.ButtonBtn_ok;protectedSystem.Web.UI.WebControls.CustomValidatorCv_id;protectedSystem.Web.UI.WebControls.LabelLbl_note;protectedSystem.Web.UI.WebControls.ButtonBtn_reset;protectedSystem.Web.UI.WebControls.RequiredFieldValidatorRfv_name;protectedSystem.Web.UI.WebControls.RequiredFieldValidatorRfv_id;protectedSystem.Web.UI.WebControls.RequiredFieldValidatorRfv_nation;protectedSystem.Web.UI.WebControls.RequiredFieldValidatorRfv_birthday;protectedSystem.Web.UI.WebControls.RequiredFieldValidatorRfv_time;protectedSystem.Web.UI.WebControls.RequiredFieldValidatorRfv_class;protectedSystem.Web.UI.WebControls.RequiredFieldValidatorRfv_home;protectedSystem.Web.UI.WebControls.DropDownListDdl_class;SqlConnectioncn;privatevoidPage_Load(objectsender,System.EventArgse){//班级名称下拉列表框绑定stringstrconn=ConfigurationSettings.AppSettings["dsn"];SqlConnectioncn0=newSqlConnection(strconn);if(!IsPostBack){cn0.Open();stringmysql="select*fromclass";SqlCommandcm1=newSqlCommand(mysql,cn0);SqlDataReaderdr1=cm1.ExecuteReader();while(dr1.Read()){Ddl_class.Items.Add(newListItem(dr1["Class_name"].ToString(),dr1["Class_id"].ToString()));}cn0.Close();}//在此处放置用户代码以初始化页面cn=newSqlConnection(strconn);. }#regionWebFormDesignergeneratedcodeoverrideprotectedvoidOnInit(EventArgse){////CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。//InitializeComponent();base.OnInit(e);}privatevoidInitializeComponent(){this.Cv_id.ServerValidate+=newSystem.Web.UI.WebControls.ServerValidateEventHandler(this.Cv_id_ServerValidate);this.Btn_ok.Click+=newSystem.EventHandler(this.Btn_ok_Click);this.Btn_reset.Click+=newSystem.EventHandler(this.Btn_reset_Click);this.Load+=newSystem.EventHandler(this.Page_Load);}#endregionprivatevoidBtn_ok_Click(objectsender,System.EventArgse){SqlCommandcm=newSqlCommand("insert_student_1",cn);cm.CommandType=CommandType.StoredProcedure;try{cm.Parameters.Add(newSqlParameter("@Student_id",SqlDbType.VarChar,50));cm.Parameters["@Student_id"].Value=Tbx_id.Text;cm.Parameters.Add(newSqlParameter("@Student_name",SqlDbType.VarChar,50));cm.Parameters["@Student_name"].Value=Tbx_name.Text;cm.Parameters.Add(newSqlParameter("@Student_sex",SqlDbType.Char,10));cm.Parameters["@Student_sex"].Value=Ddl_sex.SelectedItem.Value;cm.Parameters.Add(newSqlParameter("@Student_nation",SqlDbType.Char,10));cm.Parameters["@Student_nation"].Value=Tbx_nation.Text;cm.Parameters.Add(newSqlParameter("@Student_birthday",SqlDbType.DateTime,8));cm.Parameters["@Student_birthday"].Value=Tbx_birthday.Text;cm.Parameters.Add(newSqlParameter("@Student_time",SqlDbType.DateTime,8));cm.Parameters["@Student_time"].Value=Tbx_time.Text;. cm.Parameters.Add(newSqlParameter("@Student_classid",SqlDbType.VarChar,50));cm.Parameters["@Student_classid"].Value=Ddl_class.SelectedItem.Value;cm.Parameters.Add(newSqlParameter("@Student_home",SqlDbType.VarChar,50));cm.Parameters["@Student_home"].Value=Tbx_home.Text;cm.Parameters.Add(newSqlParameter("@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";}}publicvoidinsert(){stringstrsl="insertintousers(User_id,User_password,User_power)values(@User_id,@User_pwd,0)";SqlCommandcm=newSqlCommand(strsl,cn);cm.Parameters.Add(newSqlParameter("@User_id",SqlDbType.VarChar,50));cm.Parameters["@User_id"].Value=Tbx_id.Text;cm.Parameters.Add(newSqlParameter("@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();}privatevoidBtn_reset_Click(objectsender,System.EventArgse). {Response.Redirect("addstudent.aspx");}privatevoidCv_id_ServerValidate(objectsource,System.Web.UI.WebControls.ServerValidateEventArgsargs){stringstrconn=ConfigurationSettings.AppSettings["dsn"];cn=newSqlConnection(strconn);cn.Open();SqlCommandcm=newSqlCommand("select_student_1",cn);cm.CommandType=CommandType.StoredProcedure;cm.Parameters.Add("@Student_id",SqlDbType.VarChar,50);cm.Parameters["@Student_id"].Value=Tbx_id.Text;SqlDataReaderdr=cm.ExecuteReader();if(dr.Read()){args.IsValid=false;}else{args.IsValid=true;}cn.Close();}}}4.4课程信息管理页面课程信息管理页面与学生信息维护页面非常相似,进行DataGrid控件Dgd-course的绑定操作,管理员可以在此页面进行课程信息的编辑和删除。. 主要相关代码如下:usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;usingSystem.Configuration;namespacesms{//////course的摘要说明。///publicclasscourse:System.Web.UI.Page{. SqlConnectioncn;protectedSystem.Web.UI.WebControls.TextBoxTbx_name;protectedSystem.Web.UI.WebControls.TextBoxTbx_id;protectedSystem.Web.UI.WebControls.ButtonBtn_search;protectedSystem.Web.UI.WebControls.DataGridDgd_course;protectedSystem.Web.UI.WebControls.LabelLbl_note;protectedSystem.Web.UI.WebControls.ButtonBtn_exit;stringstrsql;privatevoidPage_Load(objectsender,System.EventArgse){//在此处放置用户代码以初始化页面stringstrconn=ConfigurationSettings.AppSettings["dsn"];cn=newSqlConnection(strconn);if(!IsPostBack)Bindgrid();}#regionWebFormDesignergeneratedcodeoverrideprotectedvoidOnInit(EventArgse){////CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。//InitializeComponent();base.OnInit(e);}//////设计器支持所需的方法-不要使用代码编辑器修改///此方法的内容。///privatevoidInitializeComponent(){this.Btn_search.Click+=newSystem.EventHandler(this.Btn_search_Click);this.Btn_exit.Click+=newSystem.EventHandler(this.Btn_exit_Click);this.Load+=newSystem.EventHandler(this.Page_Load);}#endregionpublicvoidDataGrid_Page(objectsender,DataGridPageChangedEventArgse){Dgd_course.CurrentPageIndex=e.NewPageIndex;. Bindgrid();}publicvoidDataGrid_edit(objectsender,DataGridCommandEventArgse){Dgd_course.EditItemIndex=(int)e.Item.ItemIndex;Bindgrid();}publicvoidDataGrid_cancel(objectsender,DataGridCommandEventArgse){Dgd_course.EditItemIndex=-1;Bindgrid();}publicvoidDataGrid_delete(objectsender,DataGridCommandEventArgse){stringstrsql="deletefromcoursewhereCourse_id=@course_id";SqlCommandcm=newSqlCommand(strsql,cn);cm.Parameters.Add(newSqlParameter("@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();}publicvoidDataGrid_update(objectsender,DataGridCommandEventArgse){. stringstrsql="updatecoursesetCourse_name=@Course_name,Course_period=@Course_period,Course_credit=@Course_credit,Course_kind=@Course_kindwhereCourse_id=@Course_id";SqlCommandcm=newSqlCommand(strsql,cn);cm.Parameters.Add(newSqlParameter("@Course_name",SqlDbType.VarChar,50));cm.Parameters.Add(newSqlParameter("@Course_period",SqlDbType.Int,4));cm.Parameters.Add(newSqlParameter("@Course_credit",SqlDbType.Int,4));cm.Parameters.Add(newSqlParameter("@Course_kind",SqlDbType.Int,4));cm.Parameters.Add(newSqlParameter("@Course_id",SqlDbType.VarChar,50));stringcolvalue=((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();}publicvoidBindgrid(){strsql="select*fromcourse";SqlDataAdapterda=newSqlDataAdapter(strsql,cn);DataSetds=newDataSet();da.Fill(ds);. Dgd_course.DataSource=ds;Dgd_course.DataBind();}privatevoidLbtn_addcourse_Click(objectsender,System.EventArgse){Response.Redirect("addcourse.aspx");}privatevoidBtn_exit_Click(objectsender,System.EventArgse){Response.Redirect("default.aspx");}privatevoidBtn_search_Click(objectsender,System.EventArgse){strsql="select*fromcoursewhereCourse_id='"+Tbx_id.Text+"'orCourse_name='"+Tbx_name.Text+"'";SqlDataAdapterda=newSqlDataAdapter(strsql,cn);DataSetds=newDataSet();da.Fill(ds);Dgd_course.DataSource=ds;Dgd_course.DataBind();}privatevoidLbtn_assign_Click(objectsender,System.EventArgse){Response.Redirect("assigncourse.aspx");}}}4.5录入成绩页面在录入成绩页面的初始化事件Page_Load()事件对“课程”下拉列表框控件Ddl_course进行初始绑定,使其显示该学生已选的所有课程信息。“录入”按钮的Click事件调用数据库操作语句,对数据库中相应学生,成绩关系表中的成绩信息进行更新。. 主要相关代码如下:usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;usingSystem.Configuration;namespacesms{//////addgrade的摘要说明。///publicclassaddgrade:System.Web.UI.Page{. protectedSystem.Web.UI.WebControls.TextBoxTbx_studentid;protectedSystem.Web.UI.WebControls.ButtonBtn_add;protectedSystem.Web.UI.WebControls.LabelLbl_note;protectedSystem.Web.UI.WebControls.ButtonBtn_exit;protectedSystem.Web.UI.WebControls.TextBoxTbx_term;protectedSystem.Web.UI.WebControls.CustomValidatorCv_id;protectedSystem.Web.UI.WebControls.DropDownListDdl_course;protectedSystem.Web.UI.WebControls.TextBoxTbx_grade;SqlConnectioncn;privatevoidPage_Load(objectsender,System.EventArgse){stringstrconn=ConfigurationSettings.AppSettings["dsn"];//在此处放置用户代码以初始化页面cn=newSqlConnection(strconn);}#regionWebFormDesignergeneratedcodeoverrideprotectedvoidOnInit(EventArgse){////CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。//InitializeComponent();base.OnInit(e);}//////设计器支持所需的方法-不要使用代码编辑器修改///此方法的内容。///privatevoidInitializeComponent(){this.Tbx_studentid.TextChanged+=newSystem.EventHandler(this.Tbx_studentid_TextChanged);this.Cv_id.ServerValidate+=newSystem.Web.UI.WebControls.ServerValidateEventHandler(this.Cv_id_ServerValidate);this.Btn_add.Click+=newSystem.EventHandler(this.Btn_add_Click);this.Btn_exit.Click+=newSystem.EventHandler(this.Btn_exit_Click);this.Load+=newSystem.EventHandler(this.Page_Load);}. #endregionprivatevoidBtn_add_Click(objectsender,System.EventArgse){stringstrsql="updatestudent_coursesetStudent_grade=@Student_gradewhereStudent_id=@Student_idandCourse_id=@Course_idandCourse_year=@Course_year";SqlCommandcm=newSqlCommand(strsql,cn);cm.Parameters.Add(newSqlParameter("@Student_id",SqlDbType.VarChar,50));cm.Parameters["@Student_id"].Value=Tbx_studentid.Text;cm.Parameters.Add(newSqlParameter("@Course_id",SqlDbType.VarChar,50));cm.Parameters["@Course_id"].Value=Ddl_course.SelectedItem.Value;cm.Parameters.Add(newSqlParameter("@Course_year",SqlDbType.Char,10));cm.Parameters["@Course_year"].Value=Tbx_term.Text;cm.Parameters.Add(newSqlParameter("@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();}privatevoidBtn_exit_Click(objectsender,System.EventArgse){Response.Redirect("grade_manage.aspx");}privatevoidCv_id_ServerValidate(objectsource,System.Web.UI.WebControls.ServerValidateEventArgsargs){stringstrconn=ConfigurationSettings.AppSettings["dsn"];cn=newSqlConnection(strconn);cn.Open();. stringstrsql="select*fromstudentwhereStudent_id='"+Tbx_studentid.Text+"'";SqlCommandcm=newSqlCommand(strsql,cn);SqlDataReaderdr=cm.ExecuteReader();if(dr.Read()){args.IsValid=true;}else{args.IsValid=false;}cn.Close();}privatevoidTbx_studentid_TextChanged(objectsender,System.EventArgse){//课程名称下拉列表框绑定stringstrconn=ConfigurationSettings.AppSettings["dsn"];SqlConnectioncn0=newSqlConnection(strconn);cn0.Open();stringmysql1="selectcourse.*fromstudent_course,coursewherestudent_course.Student_id='"+Tbx_studentid.Text+"'andstudent_course.Course_id=course.Course_id";SqlCommandcm1=newSqlCommand(mysql1,cn0);SqlDataReaderdr1=cm1.ExecuteReader();while(dr1.Read()){Ddl_course.Items.Add(newListItem(dr1["Course_name"].ToString(),dr1["Course_id"].ToString()));}cn0.Close();}}}4.6添加教师页面在添加教师. 页面初始化事件Page_Load事件中将数据库中的所有课程及班级信息分别绑定到DropDownList控件的Ddl_course和Ddl_class控件中,“确定”按钮Btn_ok控件的Click()事件完成往数据库学生-课程信息表中添加所选班级范围下所有学生的相应课程选课记录的任务。主要相关代码如下:usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Configuration;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;namespacesms{. //////addstudentcourse的摘要说明。///publicclassaddstudentcourse:System.Web.UI.Page{protectedSystem.Web.UI.WebControls.DropDownListDdl_course;protectedSystem.Web.UI.WebControls.DropDownListDdl_class;protectedSystem.Web.UI.WebControls.TextBoxTbx_year;protectedSystem.Web.UI.WebControls.ButtonBtn_ok;protectedSystem.Web.UI.WebControls.LabelLbl_note;protectedSystem.Web.UI.WebControls.ButtonBtn_back;privatevoidPage_Load(objectsender,System.EventArgse){//在此处放置用户代码以初始化页面stringstrconn=ConfigurationSettings.AppSettings["dsn"];//连接本地计算机的sms数据库SqlConnectioncn0=newSqlConnection(strconn);if(!IsPostBack){//课程名称下拉列表框绑定cn0.Open();stringmysql1="select*fromcoursewhereCourse_kind='0'orCourse_kind='1'";SqlCommandcm1=newSqlCommand(mysql1,cn0);SqlDataReaderdr1=cm1.ExecuteReader();while(dr1.Read()){Ddl_course.Items.Add(newListItem(dr1["Course_name"].ToString(),dr1["Course_id"].ToString()));}cn0.Close();//班级名称下拉列表框绑定cn0.Open();stringmysql2="select*fromclass";SqlCommandcm2=newSqlCommand(mysql2,cn0);SqlDataReaderdr2=cm2.ExecuteReader();while(dr2.Read()){Ddl_class.Items.Add(newListItem(dr2["Class_name"].ToString(),dr2["Class_id"].ToString()));. }cn0.Close();}}overrideprotectedvoidOnInit(EventArgse){////CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。//InitializeComponent();base.OnInit(e);}//////设计器支持所需的方法-不要使用代码编辑器修改///此方法的内容。///privatevoidInitializeComponent(){this.Btn_ok.Click+=newSystem.EventHandler(this.Btn_ok_Click);this.Btn_back.Click+=newSystem.EventHandler(this.Btn_back_Click);this.Load+=newSystem.EventHandler(this.Page_Load);}#endregionprivatevoidBtn_ok_Click(objectsender,System.EventArgse){stringstrconn=ConfigurationSettings.AppSettings["dsn"];SqlConnectioncn=newSqlConnection(strconn);cn.Open();stringstrsql="insertintostudent_course(Student_id,Course_id,Course_year)(selectStudent_id,@Course_id,@Course_yearfromstudentwhereStudent_classid=@classid)";SqlCommandcm=newSqlCommand(strsql,cn);cm.Parameters.Add(newSqlParameter("@classid",SqlDbType.VarChar,50));cm.Parameters["@classid"].Value=Ddl_class.SelectedItem.Value;cm.Parameters.Add(newSqlParameter("@Course_id",SqlDbType.VarChar,50));cm.Parameters["@Course_id"].Value=Ddl_course.SelectedItem.Value;cm.Parameters.Add(newSqlParameter("@Class_id",SqlDbType.VarChar,50));cm.Parameters["@Class_id"].Value=Ddl_class.SelectedItem.Value;cm.Parameters.Add(newSqlParameter("@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();}privatevoidBtn_back_Click(objectsender,System.EventArgse){Response.Redirect("course.aspx");}}}4.7添加课程页面添加课程页面完成的功能比较多,包括按选定的条件进行限定条件的成绩查询。同时,也可以根据成绩范围对包含在该范围中的学生成绩作一统计,具体统计这门课的平均分,最高分,参加考试总人数以及优秀人数和不及格人数。此页面的关键就在于根据条件生成SQL语句。当“查询”“统计”操作被触发,系统将完成对数据库中多个表的操作。. 主要相关代码如下:usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;usingSystem.Configuration;namespacesms{//////grade_manage的摘要说明。///publicclassgrade_manage:System.Web.UI.Page{. protectedSystem.Web.UI.WebControls.DropDownListDdl_way;protectedSystem.Web.UI.WebControls.TextBoxTbx_name;protectedSystem.Web.UI.WebControls.ButtonBtn_search;protectedSystem.Web.UI.WebControls.DataGridDgd_grade;protectedSystem.Web.UI.WebControls.LinkButtonLink_addgrade;SqlConnectioncn;protectedSystem.Web.UI.WebControls.LabelLbl_note;protectedSystem.Web.UI.WebControls.DropDownListDdl_stat;protectedSystem.Web.UI.WebControls.TextBoxTbx_area;protectedSystem.Web.UI.WebControls.TextBoxTbx_classid;protectedSystem.Web.UI.WebControls.DropDownListDdl_content;protectedSystem.Web.UI.WebControls.ButtonBtn_count;protectedSystem.Web.UI.WebControls.TextBoxTbx_year;protectedSystem.Web.UI.WebControls.LabelLbl_average;protectedSystem.Web.UI.WebControls.LabelLbl_high;protectedSystem.Web.UI.WebControls.LabelLbl_a;protectedSystem.Web.UI.WebControls.LabelLbl_unpass;protectedSystem.Web.UI.WebControls.LabelLbl_all;protectedSystem.Web.UI.WebControls.TextBoxTbx_term;stringstrsql;privatevoidPage_Load(objectsender,System.EventArgse){//在此处放置用户代码以初始化页面stringstrconn=ConfigurationSettings.AppSettings["dsn"];cn=newSqlConnection(strconn);}#regionWebFormDesignergeneratedcodeoverrideprotectedvoidOnInit(EventArgse){////CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。//InitializeComponent();base.OnInit(e);}//////设计器支持所需的方法-不要使用代码编辑器修改///此方法的内容。. ///privatevoidInitializeComponent(){this.Btn_count.Click+=newSystem.EventHandler(this.Btn_count_Click);this.Btn_search.Click+=newSystem.EventHandler(this.Btn_search_Click);this.Link_addgrade.Click+=newSystem.EventHandler(this.Link_addgrade_Click);this.Load+=newSystem.EventHandler(this.Page_Load);}#endregionprivatevoidLink_addgrade_Click(objectsender,System.EventArgse){Response.Redirect("addgrade.aspx");}privatevoidBtn_search_Click(objectsender,System.EventArgse){Bindgrid();}publicvoidDataGrid_Page(objectsender,DataGridPageChangedEventArgse){Dgd_grade.CurrentPageIndex=e.NewPageIndex;Bindgrid();}publicvoidBindgrid(){if(Ddl_way.SelectedItem.Text=="按学号"){if(Tbx_term.Text=="所有"){strsql="selectstudent_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_gradefromcourse,student,teacher,student_course,teacher_coursewherestudent_course.Student_id='"+Tbx_name.Text+"'andstudent_course.Course_id=course.Course_idandstudent_course.Student_id=student.Student_idandstudent_course.Course_id=teacher_course.Course_idandteacher_course.Teacher_id=teacher.Teacher_idand. teacher_course.Class_id=student.Student_classid";}else{strsql="selectstudent_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_gradefromcourse,student,teacher,student_course,teacher_coursewherestudent_course.Student_id='"+Tbx_name.Text+"'andCourse_year='"+Tbx_term.Text+"'andstudent_course.Course_id=course.Course_idandstudent_course.Student_id=student.Student_idandstudent_course.Course_id=teacher_course.Course_idandteacher_course.Teacher_id=teacher.Teacher_idandteacher_course.Class_id=student.Student_classid";}}elseif(Ddl_way.SelectedItem.Text=="按课号"){if(Tbx_term.Text=="所有"){strsql="selectstudent_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_gradefromcourse,student,teacher,student_course,teacher_coursewherestudent_course.Course_id='"+Tbx_name.Text+"'andstudent_course.Course_id=course.Course_idandstudent_course.Student_id=student.Student_idandstudent_course.Course_id=teacher_course.Course_idandteacher_course.Teacher_id=teacher.Teacher_idandteacher_course.Class_id=student.Student_classid";}else{strsql="selectstudent_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_gradefromcourse,student,teacher,student_course,teacher_coursewherestudent_course.Course_id='"+Tbx_name.Text+"'andstudent_course.Course_year='"+Tbx_term.Text+"'andstudent_course.Course_id=course.Course_idandstudent_course.Student_id=student.Student_idandstudent_course.Course_id=teacher_course.Course_idandteacher_course.Teacher_id=teacher.Teacher_idandteacher_course.Class_id=student.Student_classid";}}elseif(Ddl_way.SelectedItem.Text=="按课程名"). {if(Tbx_term.Text=="所有"){strsql="selectstudent_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_gradefromcourse,student,teacher,student_course,teacher_coursewherecourse.Course_name='"+Tbx_name.Text+"'andstudent_course.Course_id=course.Course_idandstudent_course.Student_id=student.Student_idandstudent_course.Course_id=teacher_course.Course_idandteacher_course.Teacher_id=teacher.Teacher_idandteacher_course.Class_id=student.Student_classid";}else{strsql="selectstudent_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_gradefromcourse,student,teacher,student_course,teacher_coursewherecourse.Course_name='"+Tbx_name.Text+"'andstudent_course.Course_year='"+Tbx_term.Text+"'andstudent_course.Course_id=course.Course_idandstudent_course.Student_id=student.Student_idandstudent_course.Course_id=teacher_course.Course_idandteacher_course.Teacher_id=teacher.Teacher_idandteacher_course.Class_id=student.Student_classid";}}elseif(Ddl_way.SelectedItem.Text=="按班级"){if(Tbx_term.Text=="所有"){strsql="selectstudent_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_gradefromcourse,student,teacher,student_course,teacher_coursewherestudent.Student_classid='"+Tbx_name.Text+"'andstudent_course.Course_id=course.Course_idandstudent_course.Student_id=student.Student_idandstudent_course.Course_id=teacher_course.Course_idandteacher_course.Teacher_id=teacher.Teacher_idandteacher_course.Class_id=student.Student_classid";}else{. strsql="selectstudent_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_gradefromcourse,student,teacher,student_course,teacher_coursewherestudent.Student_classid='"+Tbx_name.Text+"'andstudent_course.Course_year='"+Tbx_term.Text+"'andstudent_course.Course_id=course.Course_idandstudent_course.Student_id=student.Student_idandstudent_course.Course_id=teacher_course.Course_idandteacher_course.Teacher_id=teacher.Teacher_idandteacher_course.Class_id=student.Student_classid";}}elseif(Ddl_way.SelectedItem.Text=="按教师号"){if(Tbx_term.Text=="所有"){strsql="selectstudent_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_gradefromcourse,student,teacher,student_course,teacher_coursewhereteacher.Teacher_id='"+Tbx_name.Text+"'andstudent_course.Course_id=course.Course_idandstudent_course.Student_id=student.Student_idandstudent_course.Course_id=teacher_course.Course_idandteacher_course.Teacher_id=teacher.Teacher_idandteacher_course.Class_id=student.Student_classid";}else{strsql="selectstudent_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_gradefromcourse,student,teacher,student_course,teacher_coursewhereteacher.Teacher_id='"+Tbx_name.Text+"'andstudent_course.Course_year='"+Tbx_term.Text+"'andstudent_course.Course_id=course.Course_idandstudent_course.Student_id=student.Student_idandstudent_course.Course_id=teacher_course.Course_idandteacher_course.Teacher_id=teacher.Teacher_idandteacher_course.Class_id=student.Student_classid";}}SqlCommandcm=newSqlCommand(strsql,cn);cn.Open();SqlDataReaderdr=cm.ExecuteReader();if(dr.Read()). {Dgd_grade.Visible=true;cn.Close();cn.Open();SqlDataAdapterda=newSqlDataAdapter(strsql,cn);DataSetds=newDataSet();da.Fill(ds);Dgd_grade.DataSource=ds;Dgd_grade.DataBind();}else{Dgd_grade.Visible=false;Lbl_note.Text="无纪录!";}cn.Close();}publicvoidDataGrid_cancel(objectsender,DataGridCommandEventArgse){Dgd_grade.EditItemIndex=-1;Bindgrid();}publicvoidDataGrid_edit(objectsender,DataGridCommandEventArgse){Dgd_grade.EditItemIndex=(int)e.Item.ItemIndex;Bindgrid();}publicvoidDataGrid_update(objectsender,DataGridCommandEventArgse){stringstrsql="updatestudent_coursesetStudent_grade=@Student_gradewhereStudent_id=@Student_idandCourse_id=@Course_idandID=@id";SqlCommandcm=newSqlCommand(strsql,cn);cm.Parameters.Add(newSqlParameter("@Student_grade",SqlDbType.Int,4));cm.Parameters.Add(newSqlParameter("@Course_id",SqlDbType.VarChar,50));cm.Parameters.Add(newSqlParameter("@Student_id",SqlDbType.VarChar,50));cm.Parameters.Add(newSqlParameter("@id",SqlDbType.Char,10));. stringcolvalue=((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();}publicvoidDataGrid_delete(objectsender,DataGridCommandEventArgse){stringstrsql="deletefromstudent_coursewhereID=@id";SqlCommandcm=newSqlCommand(strsql,cn);cm.Parameters.Add(newSqlParameter("@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();}privatevoidBtn_count_Click(objectsender,System.EventArgse){if(Ddl_stat.SelectedItem.Value=="系别"){if(Ddl_content.SelectedItem.Text=="总人数"){strsql="selectAVG(Student_grade),MAX(Student_grade),COUNT(*)fromstudent_course,student,classwhereCourse_id='"+Tbx_classid.Text+"'andstudent_course.Course_year='"+Tbx_year.Text+"'andstudent_course.Student_id=student.Student_idandstudent.Student_classid=class.Class_idandclass.Class_department='"+Tbx_area.Text+"'";}elseif(Ddl_content.SelectedItem.Text=="优秀人数"){strsql="selectAVG(Student_grade),MAX(Student_grade),COUNT(*)fromstudent_course,student,classwhereCourse_id='"+Tbx_classid.Text+"'andstudent_course.Course_year='"+Tbx_year.Text+"'andstudent_course.Student_id=student.Student_idandstudent.Student_classid=class.Class_idandclass.Class_department='"+Tbx_area.Text+"'andStudent_grade>=85";}elseif(Ddl_content.SelectedItem.Text=="不及格人数"){strsql="selectAVG(Student_grade),MAX(Student_grade),COUNT(*)fromstudent_course,student,classwhereCourse_id='"+Tbx_classid.Text+"'andstudent_course.Course_year='"+Tbx_year.Text+"'andstudent_course.Student_id=student.Student_idandstudent.Student_classid=class.Class_idandclass.Class_department='"+Tbx_area.Text+"'andStudent_grade<60";}else{strsql="selectAVG(Student_grade),MAX(Student_grade)fromstudent_course,student,classwhereCourse_id='"+Tbx_classid.Text+"'andstudent_course.Course_year='"+Tbx_year.Text+"'andstudent_course.Student_id=student.Student_idandstudent.Student_classid=class.Class_idandclass.Class_department='"+Tbx_area.Text+"'";. }}elseif(Ddl_stat.SelectedItem.Value=="学院"){if(Ddl_content.SelectedItem.Text=="总人数"){strsql="selectAVG(Student_grade),MAX(Student_grade),COUNT(*)fromstudent_course,student,classwhereCourse_id='"+Tbx_classid.Text+"'andstudent_course.Course_year='"+Tbx_year.Text+"'andstudent_course.Student_id=student.Student_idandstudent.Student_classid=class.Class_idandclass.Class_college='"+Tbx_area.Text+"'";}elseif(Ddl_content.SelectedItem.Text=="优秀人数"){strsql="selectAVG(Student_grade),MAX(Student_grade),COUNT(*)fromstudent_course,student,classwhereCourse_id='"+Tbx_classid.Text+"'andstudent_course.Course_year='"+Tbx_year.Text+"'andstudent_course.Student_id=student.Student_idandstudent.Student_classid=class.Class_idandclass.Class_college='"+Tbx_area.Text+"'andStudent_grade>=85";}elseif(Ddl_content.SelectedItem.Text=="不及格人数"){strsql="selectAVG(Student_grade),MAX(Student_grade),COUNT(*)fromstudent_course,student,classwhereCourse_id='"+Tbx_classid.Text+"'andstudent_course.Course_year='"+Tbx_year.Text+"'andstudent_course.Student_id=student.Student_idandstudent.Student_classid=class.Class_idandclass.Class_college='"+Tbx_area.Text+"'andStudent_grade<60";}else{strsql="selectAVG(Student_grade),MAX(Student_grade)fromstudent_course,student,classwhereCourse_id='"+Tbx_classid.Text+"'andstudent_course.Course_year='"+Tbx_year.Text+"'andstudent_course.Student_id=student.Student_idandstudent.Student_classid=class.Class_idandclass.Class_college='"+Tbx_area.Text+"'";}}elseif(Ddl_stat.SelectedItem.Value=="班级"){if(Ddl_content.SelectedItem.Text=="总人数"). {strsql="selectAVG(Student_grade),MAX(Student_grade),COUNT(*)fromstudent_course,studentwhereCourse_id='"+Tbx_classid.Text+"'andstudent_course.Course_year='"+Tbx_year.Text+"'andstudent_course.Student_id=student.Student_idandstudent.Student_classid='"+Tbx_area.Text+"'";}elseif(Ddl_content.SelectedItem.Text=="优秀人数"){strsql="selectAVG(Student_grade),MAX(Student_grade),COUNT(*)fromstudent_course,studentwhereCourse_id='"+Tbx_classid.Text+"'andstudent_course.Course_year='"+Tbx_year.Text+"'andstudent_course.Student_id=student.Student_idandstudent.Student_classid='"+Tbx_area.Text+"'andStudent_grade>=85";}elseif(Ddl_content.SelectedItem.Text=="不及格人数"){strsql="selectAVG(Student_grade),MAX(Student_grade),COUNT(*)fromstudent_course,studentwhereCourse_id='"+Tbx_classid.Text+"'andstudent_course.Course_year='"+Tbx_year.Text+"'andstudent_course.Student_id=student.Student_idandstudent.Student_classid='"+Tbx_area.Text+"'andStudent_grade<60";}else{strsql="selectAVG(Student_grade),MAX(Student_grade)fromstudent_course,studentwhereCourse_id='"+Tbx_classid.Text+"'andstudent_course.Course_year='"+Tbx_year.Text+"'andstudent_course.Student_id=student.Student_idandstudent.Student_classid='"+Tbx_area.Text+"'";}}SqlCommandcm=newSqlCommand(strsql,cn);cn.Open();SqlDataReaderdr=cm.ExecuteReader();if(dr.Read()){if(Ddl_content.SelectedItem.Text=="均分"){Lbl_average.Visible=true;Lbl_average.Text="平均分为:"+dr[0].ToString();. }elseif(Ddl_content.SelectedItem.Text=="最高分"){Lbl_high.Visible=true;Lbl_high.Text="最高分为:"+dr[1].ToString();}elseif(Ddl_content.SelectedItem.Text=="总人数"){Lbl_all.Visible=true;Lbl_all.Text="总人数为:"+dr[2].ToString();}elseif(Ddl_content.SelectedItem.Text=="优秀人数"){Lbl_a.Visible=true;Lbl_a.Text="优秀人数为:"+dr[2].ToString();}elseif(Ddl_content.SelectedItem.Text=="不及格人数"){Lbl_unpass.Visible=true;Lbl_unpass.Text="不及格人数为:"+dr[2].ToString();}else{Lbl_note.Text="无此信息";}cn.Close();}}}}4.8课程类别管理页面课程类别管理页面窗体所示,系统用户可对其进一步确认管理。. 主要相关代码如下:usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;usingSystem.Configuration;namespacesms{//////student_course的摘要说明。///publicclassstudent_course:System.Web.UI.Page{. protectedSystem.Web.UI.WebControls.ButtonBtn_student;protectedSystem.Web.UI.WebControls.DataGridDgd_sort;protectedSystem.Web.UI.WebControls.LabelLbl_all;protectedSystem.Web.UI.WebControls.TextBoxTbx_year;protectedSystem.Web.UI.WebControls.LabelLbl_note;protectedSystem.Web.UI.WebControls.ButtonBtn_exit;protectedSystem.Web.UI.WebControls.DropDownListDdl_course;protectedSystem.Web.UI.WebControls.DropDownListDdl_teacher;SqlConnectioncn;privatevoidPage_Load(objectsender,System.EventArgse){//教师名称下拉列表框绑定stringstrconn=ConfigurationSettings.AppSettings["dsn"];//连接本地计算机的sms数据库SqlConnectioncn0=newSqlConnection(strconn);if(!IsPostBack){cn0.Open();stringmysql="select*fromteacher";SqlCommandcm0=newSqlCommand(mysql,cn0);SqlDataReaderdr0=cm0.ExecuteReader();while(dr0.Read()){Ddl_teacher.Items.Add(newListItem(dr0["Teacher_name"].ToString(),dr0["Teacher_id"].ToString()));}cn0.Close();//课程名称下拉列表框绑定cn0.Open();stringmysql1="select*fromcourse";SqlCommandcm1=newSqlCommand(mysql1,cn0);SqlDataReaderdr1=cm1.ExecuteReader();while(dr1.Read()){Ddl_course.Items.Add(newListItem(dr1["Course_name"].ToString(),dr1["Course_id"].ToString()));}cn0.Close();}//在此处放置用户代码以初始化页面cn=newSqlConnection(strconn);. }#regionWebFormDesignergeneratedcodeoverrideprotectedvoidOnInit(EventArgse){////CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。//InitializeComponent();base.OnInit(e);}//////设计器支持所需的方法-不要使用代码编辑器修改///此方法的内容。///privatevoidInitializeComponent(){this.Btn_student.Click+=newSystem.EventHandler(this.Btn_student_Click);this.Btn_exit.Click+=newSystem.EventHandler(this.Btn_exit_Click);this.Load+=newSystem.EventHandler(this.Page_Load);}#endregionprivatevoidBtn_student_Click(objectsender,System.EventArgse){Bindgrid();}publicvoidDataGrid_delete(objectsender,DataGridCommandEventArgse){stringstrsql="deletefromstudent_coursewhereID=@id";SqlCommandcm=newSqlCommand(strsql,cn);cm.Parameters.Add(newSqlParameter("@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();}publicvoidBindgrid(){stringstrsql="selectstudent_course.ID,student.Student_id,student.Student_classidfromstudent_course,student,teacher_coursewherestudent_course.Course_id='"+Ddl_course.SelectedItem.Value+"'andstudent_course.Course_year=teacher_course.Course_yearandstudent_course.Course_year='"+Tbx_year.Text+"'andteacher_course.Teacher_id='"+Ddl_teacher.SelectedItem.Value+"'andstudent_course.Course_id=teacher_course.Course_idandstudent.Student_id=student_course.Student_id";SqlDataAdapterda=newSqlDataAdapter(strsql,cn);DataSetds=newDataSet();da.Fill(ds);Dgd_sort.DataSource=ds;Dgd_sort.DataBind();stringstrsq="selectCOUNT(*)fromstudent_course,student,teacher_coursewherestudent_course.Course_id='"+Ddl_course.SelectedItem.Value+"'andstudent_course.Course_year=teacher_course.Course_yearandstudent_course.Course_year='"+Tbx_year.Text+"'andteacher_course.Teacher_id='"+Ddl_teacher.SelectedItem.Value+"'andstudent_course.Course_id=teacher_course.Course_idandstudent.Student_id=student_course.Student_id";SqlCommandcm1=newSqlCommand(strsq,cn);cn.Open();SqlDataReaderdr=cm1.ExecuteReader();if(dr.Read()){Lbl_all.Text="选课总人数为:"+dr[0].ToString();. }else{Lbl_all.Text="无人选此课";}cn.Close();}privatevoidBtn_exit_Click(objectsender,System.EventArgse){Response.Redirect("default.aspx");}}}4.9用户管理页面用户管理页面是实现对所有用户的信息进行综合管理的界面。主要相关代码如下:usingSystem;usingSystem.Collections;. usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;usingSystem.Configuration;namespacesms{//////sortcourse的摘要说明。///publicclasssortcourse:System.Web.UI.Page{protectedSystem.Web.UI.WebControls.DataGridDgd_sort;protectedSystem.Web.UI.WebControls.TextBoxTbx_courseid;protectedSystem.Web.UI.WebControls.TextBoxTbx_year;protectedSystem.Web.UI.WebControls.ButtonBtn_look;protectedSystem.Web.UI.WebControls.TextBoxTbx_teacher;protectedSystem.Web.UI.WebControls.TextBoxTbx_term;protectedSystem.Web.UI.WebControls.ButtonBtn_sort;protectedSystem.Web.UI.WebControls.LabelLbl_all;protectedSystem.Web.UI.WebControls.LabelLbl_note;protectedSystem.Web.UI.WebControls.ButtonBtn_yes;protectedSystem.Web.UI.WebControls.ButtonBtn_no;protectedSystem.Web.UI.WebControls.PanelPn_yes;protectedSystem.Web.UI.WebControls.CustomValidatorCv_course;protectedSystem.Web.UI.WebControls.RequiredFieldValidatorRfv_year;SqlConnectioncn;protectedSystem.Web.UI.WebControls.DropDownListDdl_course;stringstrsql;privatevoidPage_Load(objectsender,System.EventArgse){stringstrconn=ConfigurationSettings.AppSettings["dsn"];cn=newSqlConnection(strconn);if(!IsPostBack){//课程名称下拉列表框绑定. SqlConnectioncn0=newSqlConnection(strconn);cn0.Open();stringmysql1="select*fromcoursewhereCourse_kind='2'";SqlCommandcm1=newSqlCommand(mysql1,cn0);SqlDataReaderdr1=cm1.ExecuteReader();Ddl_course.Items.Add(newListItem("",""));while(dr1.Read()){Ddl_course.Items.Add(newListItem(dr1["Course_name"].ToString(),dr1["Course_id"].ToString()));}cn0.Close();}}#regionWebFormDesignergeneratedcodeoverrideprotectedvoidOnInit(EventArgse){////CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。//InitializeComponent();base.OnInit(e);}//////设计器支持所需的方法-不要使用代码编辑器修改///此方法的内容。///privatevoidInitializeComponent(){this.Btn_sort.Click+=newSystem.EventHandler(this.Btn_sort_Click);this.Cv_course.ServerValidate+=newSystem.Web.UI.WebControls.ServerValidateEventHandler(this.Cv_course_ServerValidate);this.Btn_yes.Click+=newSystem.EventHandler(this.Btn_yes_Click);this.Btn_no.Click+=newSystem.EventHandler(this.Btn_no_Click);this.Btn_look.Click+=newSystem.EventHandler(this.Btn_look_Click);this.Load+=newSystem.EventHandler(this.Page_Load);}. #endregionprivatevoidBtn_sort_Click(objectsender,System.EventArgse){stringstrsq="selectCOUNT(Student_id)fromstudent_coursewhereCourse_id='"+Tbx_courseid.Text+"'andCourse_year='"+Tbx_year.Text+"'";SqlCommandcm1=newSqlCommand(strsq,cn);cn.Open();SqlDataReaderdr=cm1.ExecuteReader();if(dr.Read()){Lbl_all.Text="选此课总人数为:"+dr[0].ToString();}else{Lbl_all.Text="无人选此课";}Pn_yes.Visible=true;cn.Close();}privatevoidBtn_yes_Click(objectsender,System.EventArgse){strsql="insertintostudent_course(Student_id,Course_id,Course_year)values(@Student_id,@Course_id,@Course_year)";SqlCommandcm=newSqlCommand(strsql,cn);cm.Parameters.Add(newSqlParameter("@Student_id",SqlDbType.VarChar,50));cm.Parameters.Add(newSqlParameter("@Course_id",SqlDbType.VarChar,50));cm.Parameters.Add(newSqlParameter("@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();}privatevoidBtn_no_Click(objectsender,System.EventArgse){Lbl_all.Text="请重新选择";}privatevoidCv_course_ServerValidate(objectsource,System.Web.UI.WebControls.ServerValidateEventArgsargs){cn.Open();strsql="select*fromcoursewhereCourse_id='"+Tbx_courseid.Text+"'";SqlCommandcm=newSqlCommand(strsql,cn);SqlDataReaderdr=cm.ExecuteReader();if(dr.Read()){args.IsValid=true;}else{args.IsValid=false;}cn.Close();}privatevoidBtn_look_Click(objectsender,System.EventArgse){if(Ddl_course.SelectedItem.Text==""){if(Tbx_teacher.Text==""){strsql="selectcourse.Course_name,course.Course_id,teacher.Teacher_name,course.Course_credit,course.Course_periodfromcourse,teacher,teacher_coursewhereteacher_course.Course_year='"+Tbx_term.Text+"'andteacher_course.Course_id=course.Course_idandteacher_course.Teacher_id=teacher.Teacher_id";}. else{strsql="selectcourse.Course_name,course.Course_id,teacher.Teacher_name,course.Course_credit,course.Course_periodfromcourse,teacher,teacher_coursewhereteacher_course.Course_year='"+Tbx_term.Text+"'andteacher_course.Course_id=course.Course_idandteacher_course.Teacher_id=teacher.Teacher_idandteacher.Teacher_name='"+Tbx_teacher.Text+"'";}}else{if(Tbx_teacher.Text==""){strsql="selectcourse.Course_name,course.Course_id,teacher.Teacher_name,course.Course_credit,course.Course_periodfromcourse,teacher,teacher_coursewhereteacher_course.Course_year='"+Tbx_term.Text+"'andteacher_course.Course_id=course.Course_idandteacher_course.Teacher_id=teacher.Teacher_idandcourse.Course_name='"+Ddl_course.SelectedItem.Text+"'";}else{strsql="selectcourse.Course_name,course.Course_id,teacher.Teacher_name,course.Course_credit,course.Course_periodfromcourse,teacher,teacher_coursewhereteacher_course.Course_year='"+Tbx_term.Text+"'andteacher_course.Course_id=course.Course_idandteacher_course.Teacher_id=teacher.Teacher_idandcourse.Course_name='"+Ddl_course.SelectedItem.Text+"'andteacher.Teacher_name='"+Tbx_teacher.Text+"'";}}SqlDataAdapterda=newSqlDataAdapter(strsql,cn);DataSetds=newDataSet();da.Fill(ds);Dgd_sort.DataSource=ds;Dgd_sort.DataBind();}}. }总结经过一个多月进行的毕业设计,终于完成了学生信息管理系统的设计。此设计已经达到了最初期望的设计要求,完成了需求。在这次学生信息管理系统的设计过程中我受到很大启发:在网站开发与设计上,体会到了理论与实际结合的重要性,认识到网站开发中应该更加注重网站的规划及按步骤实施。网站作为多栏目、多版面的有机结合整体,不仅仅要考虑到网站功能及其效果的实现,更应该注重网站与用户的有机结合。网站设计与实现的成功只是网站成功的一步,网站的明确定位显得更加重要,网站应该随时根据实施环境,实施困难进行必要的定位调整。理论与实践相结合,让我真正体会到学以致用的乐趣。通过理论作指导,再用实践来体会,验证理论。这样既加深了对理论知识的认识,又从实践活动中充实了自己。本次为期三个月的毕业设计是大学四年所学知识的综合运用,是理论与实践相结合的产物。在此期间,不但巩固了所学的书本知识。而且还学到了许多课堂上和书本上无法学到的实践知识,提高了自学能力,增强了专业技术的水平,为今后从事本专业的工作打下一定的基础。我会继续努力,完善自我,同学的帮助、指导老师的用心辅导和学校的精心安排. 使这个课题能够顺利进行。但是,由于时间仓促以及本人水平有限,本系统还有很多不完善之处,也难免存在错漏,恳请各位老师斧正。. 致谢在极短的时间内,我能成功的将此毕业设计做出,这要归功于张玉华,王丽丽,孙丰伟等老师的无私的帮助,悉心的教导。尤其得到了担任毕业设计指导的张玉华老师的技术支持,张玉华老师治学严谨、经验丰富,以及孜孜不倦、严谨细致的科研态度,更令我受益非浅。为我的毕业设计得以完成起了关键的作用,在此表示深深地谢意。同时,在毕业设计的各个阶段,在毕业设计过程中还得到了各科室教师的大力指导和无私帮助,也得到了同班同学的热情协助,大力帮助,在此表示衷心的感谢。尤其在此感谢我的辅导老师王丽丽老师给我的指导和关怀。她在生活上和工作中都给予了我热情的关心和帮助。在即将结束的四年大学本科生活之际,我要感谢吉大远程教育学院计算机分院的老师们。从他们身上我学到了许多宝贵的知识和做人的道理。他们在学业上对我的悉心指导,以及孜孜不倦、严谨细致的科研态度,更令我受益非浅。同时还要感谢吉大远程教育学院计算机分院的领导两年来对我的培养和支持,是他们为我提供了良好的学习环境和机会。感谢各位专家和评委耐心审阅我的论文,他们提出了许多宝贵的意见和建议。恳请老师不吝赐教、批评指正!. 参考文献[1]吴明辉、胡煜、窦亮,《ASP网络办公及商务应用系统开发实例导航》,中文第1版,北京,人民邮电出版社,2003年[2]邓文渊、挑战,《互动网站百宝箱》,北京,中国铁道出版社,2004年[3]石志国,《ASP动态网站编程》,北京,清华大学出版社,2001年[4]蒙新,《ASP编程技术与综合实例演练》,北京,清华大学出版社,2001年[5]丁贵广,《ASP编程基础与实例》,北京,机械工业出版社,2002[6]张海藩,《软件工程导论》,2003年,清华大学出版社[7]李存斌、樊建平,《ASP高级编程及项目应用开发》,2003年,中国水利水电出版社[8]魏善沛编著.《Web数据库技术实用教程》.北京.清华大学出版社.1998[9][美]JeffreyD.Ullman,《FundamentalCourseofDatabaseSystem》,TsingHuaPress,2001年11月。[10][美]JefferR.Shapiro著,周之、黄玫译,《SQLServer2000参考大全》,清华大学出版社,2002年6月。[11]隆华软件工作室编著,《SQLServer2000程序设计》,清华大学出版社,2001年10月。[12][美]ScotJohnson著,《ActiveServerPages译解》,电子工业出版社,1999年。[13]李世杰编著,《ActiveServerPages(ASP)网页设计手册》,清华大学出版社,1999年。[14]汪晓平、吴勇强、张宏林等编著,《ASP网络开发技术》,2000年.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭