aspnet-学生管理系统的设计与实现_第1页
aspnet-学生管理系统的设计与实现_第2页
aspnet-学生管理系统的设计与实现_第3页
aspnet-学生管理系统的设计与实现_第4页
aspnet-学生管理系统的设计与实现_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

XXXX学院毕业设计(论文)基于ASP.NET的学生管理系统学院:专业: 班级: 学号:学生姓名:指导教师:摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。通过分析某一学校学生管理的不足,创建了一套行之有效的计算机管理学生的方案。文章介绍了学生管理信息系统的系统分析部分,包括可行性分析、业务流程分析等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;系统实现部分说明了几个主要模块的算法,本系统界面友好,操作简单,比较实用。【关键字】:管理信息系统、学生管理、ASP.net应用。

SummaryWithmoreandmorewidespreadandprofoundapplicationofinformationtechnologyinmanagement,theimplementofmanagementinformationsystemhasbecomematureintechnologystepbystep.Managinginformationsystemisanewsubject.Enterpriseneedsexistenceanddevelopment,soenterpriseactivitiesshouldbeorganizedefficientlyandorganically,whichmeanstighteninguptheenterprisemanagementandstrengtheningeffectivemanagementofanyresource(staff,finance,property,etc.)internaltheenterprise,andalsoestablishingamanagementinformationsystemfittinginwithitsowncharacteristics.Thisarticleintroducesthedetailedprocessofexploringamanagementinformationsystemundertheenvironmentof,utilizing“Top-Bottom”overallplanandastrategyaccordingto“Bottom-Top”applicationandexploitation.Thatistoestablishasetofeffectiveschemeforstudentmanagementbycomputer,throughanalyzingdisadvantagesofstudentmanagementbyhumanresources.Thisarticleemphasizesonthreesections.Thesystemanalysissectionofstudentmanagementinformationincludesfeasibleanalysis,managementfunctionanalysis.Thesystemdesignsectionmainlyfocusesonsystemfunctiondesignanddatabasedesignanddatanumberdesign.Andthesystemrealizationsectionhasprovidedseveralmajorfunction,togetherwiththemainwindowsandprograms.Thiseconomicalandpragmaticsystemhasexplicitinterface,withsimpleoperation.[Keywords]:MIS、studentmanagement、application目录摘要 2Summary 3一系统概述 41.1系统及需求分析 4二开发环境 5简介 52.2SQLServer2000简介 52.3结构化查询语句SQL简介 6三学生管理信息系统设计 9概述 9需求分析 9系统框架 12系统配置 15数据库分析 173.6数据库创建 243.7数据库连接/数据库具体配置 264主要界面及相关代码 28学生管理系统首页 28学生班级管理维护页面 31学生班级添加页面 37课程信息管理页面 42录入成绩页面 47添加教师页面 51添加课程页面 55课程类别管理页面 67用户管理页面 72总结 78致谢 80参考文献 81一系统概述本学生信息管理系统可以说是一个综合性的学校学生管理系统,这它集成了学生学籍管理系统、学生成绩管理系统、学生档案管理系统、学生缴费管理系统等多种功能,因而具有较强的实用性和先进性。1.1系统及需求分析.1系统需求通过调查,要求系统需要有以下功能:=1\*GB2⑴由于操作人员的计算机知识普遍较差,要求有良好的人机界面;=2\*GB2⑵由于该系统的使用对象多,要求有较好的权限管理;=3\*GB2⑶原始数据修改简单方便,支持多条件修改=4\*GB2⑷方便的数据查询,支持多条件查询;=5\*GB2⑸在相应的权限下,删除数据方便简单,数据稳定性好;=6\*GB2⑹数据计算自动完成,尽量减少人工干预;1.1.2可行性分析由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。且学校用于学生管理的微机都是PIII以上的机器,在存储量、速度方面都能满足数据库运行的要求。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。二开发环境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。结构化查询语句SQL简介结构化查询语句SQL(StructuredQueryLanguage)简介SQL(StructuredQueryLanguage)语言是一种介于关系代数与关系验算之间的结构化查询语句,其功能并不仅仅是查询。SQL是一个通用的、功能极强的关系数据库语言。SQL语言集数据查询(DataQuery)、数据操纵(DataManipulation)、数据定义(DataDefinition)和数据控制(DataControl)功能于一体,主要特点包括:综合统一高度非过程化面向集合的操作方式以同一种语法结构提供两种使用方式语言简介,易学易用定义基本表SQL语言使用CREATETABLE语句定义基本表,其一般格式如下:CREATETABLE<表名>(<列名><数据类型>[列级完整性约束条件][,<列名><数据类型>[列级完整性约束条件]]…[,<表级完整性约束条件>]);修改基本表SQL语言使用ALTERTABLE修改基本表,其一般格式为:ALTERTABLE<表名>[ADD<新列名><数据类型>[完整性约束]][DROP<完整性约束名>][MODIFY<列名><数据类型>];查询SQL语言提供了SELECT语句进行数据库的查询,该语句具有灵活的使用方式和丰富的功能。其一般格式为:SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]…FROM<表名或视图名>[,<表名或视图名>]…[WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC|DESC]];插入数据插入单个元组插入单个元组的INSERT语句的格式为:INSERTINTO<表名>[(<属性列1>[,<属性列2>…])]VALUES(<常量1>[,<常量2>]…);插入子查询结果插入子查询结果的INSERT语句的格式为:INSERTINTO<表名>[(<属性列1>[,<属性列2>…])]子查询;修改数据 修改操作语句的一般格式为: UPDATE<表名> SET<列名>=<表达式>[,<列名>=<表达式>]… [WHERE<条件>];删除数据 删除语句的一般格式为: DELETE FROM<表名> [WHERE<条件>];三学生管理信息系统设计学生信息管理系统主要是处理学生.教师.课程.班级以及它们互相之间的关系信息。学生管理信息系统是一个比较古老的应用,随着近些年计算机技术水平的高速发展,学生管理信息系统也在不断的发展扩充其功能,从单一的学生成绩管理发展到现在的统一学生资料管理,此设计主要讲叙它的设计和实现。3.1概述。从而减少管理方面的工作量。有效的管理学生所有信息就是学生管理系统完成的功能。此学生管理系统是基于.net技术,采用.net技术构建,在此称为SMS。在行使维护功能方面包括:学生管理,班级管理,教师管理,课程管理,学生选课及其成绩管理。在后面将一一介绍。需求分析需求分析是数据库信息管理系统开发的第一步也是最重要一步。需求分析就是描述系统的需求,通过定义系统种的关键域来建立模型,分析的根本目的的是在开发者和提出需求的人之间建立的一种理解和沟通机智。需求功能这个是一个学生管理系统,我们的目标是提高学会管理工作的效率,具有对学生个人信息,课程信息,所选课程信息进行管理及维护的功能。学生可以通过此系统进行个人信息,考试成绩查询以及完成选课功能。系统开发的总体任务是实现学生信息管理的系统化,规范化和自动化。总之,学生管理系统的功能需求包括管理员对功能的需求和学生对功能的需求两大部分,如下所列:·管理员对功能的需求管理员权限最大,可以对学生,班级,课程情况进行统一的管理,管理员对功能的需求细分如下:有关学生信息的浏览,包括学生的姓名,性别,民族,出生年月,入学日期,所在班级,籍贯及备注信息;学生信息的添加,本系统由管理员对学生的基本信息进行添加;学生信息的修改,删除;班级管理信息的浏览,包括班级设置,年级信息等;班级管理信息的添加;班级管理信息的修改,删除;教师信息的添加,本系统管理员对教师的基本信息进行添加;教师权限的修改,管理员可以将教师的权限设为管理员;学校基本课程的浏览,包括课程名,课程类型,学时,学分和课程具体描述;学校基本课程的添加;学校基本课程的修改,删除;学校对所设课程进行教师分配;学生成绩的浏览与统计,可按成绩具体范围(如系,班级等),课号,年度,统计内容方面对成绩进行统计;学生成绩信息的添加;学生成绩信息的修改,删除;学生选课人数的统计。·学生对功能的需求学生只是利用此系统进行与自己由关的信息查询,输入等,不必关心其他的内容,学生对功能的需求如下:浏览个人基本信息,具体内容包括姓名,学号,民族,出生日期,籍贯,所在班级,备注等;学生登陆系统后,修改个人信息,为了保证系统安全性,只要求学生修改个人密码;浏览课程信息,具体内容包括课程名,课程类型,学时,学分和课程的具体描述,任课教师;学生利用此系统选修课程,在选课过程中,学生可查询待选课程的基本信息及教师情况,并可浏览截止当前选课的人数;浏览个人选课情况;浏览个人成绩。3.性能需求一般的性能需求是指互相消息传递顺利,协议分析正确,界面友好,运行时间满足使用需要,安全性得到完全保证。就实际情况,在高系统配置,高网络带宽很容易得到保证的情况下,我们最需要考虑的性能就是系统安全性问题。在开发系统的每个阶段,均需要考虑彼此间的认证与授权。尤其要注意认证,简单地说谁是特定用户,并针对安全源验证该用户的身份。在处理完识别用户的方法后,必须利用一种方法以向用户授权,从而能够使用系统的特定功能。也就是说,需要一种方法来决定允许特定用户进行什么样的操作。3.3系统框架3.3.为了更清楚的说明系统框架对本系统有一个整体上的初步认识,我们给出了系统流程图course.aspx 52course.aspx teacher.aspxteacher.aspx管理员登陆studentstudent-course..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.SMS主要的功能包括以下几个方面:用户管理(管理员,老师管理和学生管理),课程管理,班级管理,成绩管理选课管理。设计图如5--3所示,除此之外,系统还包含了教师管理,班级管理等辅助功能模块,用于协调4个主模块。用户管理模块学生管理系统用户管理学生管理系统用户管理管理员管理班级管理选课管理课程管理学生管理成绩管理该模块由两个子模块构成,分别示管理员与教师管理模块和学生管理模块。主要负责管理员与教师以及学生信息的管理功能,具体参看管理员与教师管理子模块和学生管理子模块的模块功能描述。管理员与教师管理子模块该模块主要负责管理系统管理员的信息。它为用户管理模块的一个子模块。主要功能是将本校的教师权限设为管理员。管理员课添加新教师信息,每个教师有唯一的编号,之后通过把教师加为管理员,而令此教师具有管理员的权限,从而教师可以登陆系统进行管理员的相关操作。学生管理子模块该模块主要负责管理所有在校注册学生的个人信息。它为用户管理模块的一个子模块。主要功能包括添加,删除,修改,查找学生信息。每个学生有唯一的学号,管理员添加新生后,新生即可登陆此系统浏览个人信息,登陆此系统的用户名和密码默认都是此学生的学号。课程管理模块该模块负责管理本校所有的课程信息。主要功能包括添加,删除,修改,查找课程信息。只有管理员才具有对课程信息进行维护的权限,课程的类型分三种:公共课,专业课和选修课。课程管理模块是选课管理模块的基础,只有在课程管理中添有选修课的信息,学生才能进行选课。选课管理模块该模块负责选课的管理。主要功能包括删除,统计学生选课信息。它以在课程管理系统中维护号的信息作为基础,既可以对选修课程进行管理,也可以对统计选课人数,并根据学生选课时间先后决定最终选修此课的同学。成绩管理模块学生学的每一门课显然最后要有成绩,查询的内肉包括课程名称,学分,成绩等。只有管理员可以录入学生每一门课的成绩,并能进行修改,学生只能查询自己所学课程的成绩,并且可以查询每一学期学生所学课程所获总学分,前提是成绩必须及格,否则将没有此课的成绩。班级管理模块该模块负责班级的管理。主要功能包括添加,删除和修改班级信息,以及对班级信息的查询。只有管理员才具有对班级管理信息进行维护的权限。学生信息的添加是建立在班级信息维护的基础上,每个学生必然属于特定的班级。并且在管理员对学生成绩查询统计时,可以统计各个班级的平均分,最高分。3.4系统配置3.软件配置软件配置主要包括数据库的选择和操作系统的选择。学生管理系统的软件配置要根据用户对系统稳定的要求,系统的容量以及用户维护水平来确定。数据库的选择可以根据数据量的大小选择大小步同的数据库,如表5-1所示。其中数据量示指数据库中需存放表但的最大记录数。表51学生管理系统数据库选择用户数据量记录稳定性要求维护水平备选数据库一般学校50000~200000较高较好SQLServer,Oracle大型院校200000以上高高Oracle当然,这种选择不是绝对的。有时,一个学校尽管人数不多,但人员变动很大,要求数据库的吞吐量和稳定性较高,这就需要选择更好的数据库。也有些情况,由于建设经费的限制,只能选择较为便宜的数据库。数据库还要考虑与操作系统的配合,此设计选用SQLServer2000数据库。操作系统的选择可以根据用户量的大小选择不同的操作系统。服务器端的选择如表5-2所示表52学生管理系统操作系统的选择用户每秒数据库并发数据访问的记录数稳定性要求维护水平备选操作系统一般学校500~2000较高较好WindowsNT,Windows2000Server,WindowsXP大型院校2000以上高好WindowsNT,Windows2000Server,WindowsXP,Linux,UNIX此设计采用Windows2000Server操作系统3.硬件配置硬件配置主要包括客服端硬件和服务器端硬件的选择。学生管理系统的硬件配置要根据拥护对系统的稳定性要求,系统的容量,系统吞吐量以及用户维护水平来确定。(1)客服硬件选择可以根据稳定性要求选择不同的客户端。一般情况下,对客服端的要求不高。如表5-3所示。表53学生管理系统客户端硬件的选择用户稳定性要求备选客服端学生客户端低PentiumCPU/64MB/4GB管理员客户端中PentiuIII/256MB/20GB(2)服务器端硬件选择可以根据数据量和吞吐量的大小选择不同的服务器硬件。选择服务器端的选择如表5-4所示表54学生管理系统服务器端硬件的选择用户每秒数据库并发数据访问记录稳定性要求维护水平备选服务器一般学校500~2000较高较好小型计算机/双热备或者XEON4CPU/4GMB/RAID56*72GB大型院校2000以上高好小型计算机/双热备或者XEON4CPU/4GMB/RAID56*72GB当然,这种配置不是绝对的,这里指给了参考配置的范围。具体配置需要根据用户的需求精确计算。网络配置学生管理系统的网络配置一般有如下几种类型。单机模式:即服务器和客服端在一台计算机上。百兆模式:计算机网络的速度为百兆,主要采用百兆交换机把用户端和服务器连接千兆模式:计算机网络的速度为千兆,实际上没有必要给每个节点都配备千兆网络接口,只需要给服务器端千兆接口即可。可根据用户情况选择不同的网络配置如表5-5所示。表55学生管理系统网络配置的选择用户每秒数据库并发数据访问记录数稳定性要求维护水平备选网络访案一般学校500~2000较高较好百兆模式大型院校2000以上高好千兆模式3.5数据库分析根据所涉及的学生管理信息系统的总数据结构,采用构建E-R图,导出系统数据表的分析方法,对学生管理信息系统作如下数据分析。3.系统E-R图根据前面对系统做的需求分析,模块设计就可以作出能够满足用户需求的各种实体以及它们之间的关系。本系统根据上面的设计规划出:用户信息实体,学生信息实体,课程信息实体,班级信息实体,教师信息实体,学生-课程信息实体,教师-课程管理实体,下面给出系统数据库E-R图,如图5-6所示。图56学生信息学生信息课程信息教师信息班级信息包含学生-课程授课教师-课程学生管理系统用户实体图,如图5-7所示用户编号 用户密码用户编号 用户密码用户类型用户信息学生管理系统学生信息实体图,如图5-8所示学号 学号 购买标记购买标记购买标记购买日期生日民族性别学生姓名学生信息图58学生管理系统课程信息实体图,如图5-9所示课程编号课程编号学分具体描述学时类型名称课程信息图59学生管理系统班级信息实体图,如图5-10所示班级编号班级编号所在学院班主任所在系班级名称班级信息图510学生管理系统教师信息实体图,如图5-11所示教师编号 教师编号 教师姓名 所属学院 教师信息图511学生管理系统学生-课程信息实体图,如图5-12所示记录编号记录编号学期年度成绩课程编号 学生学号学生-课程记录图5—12学生管理系统教师-课程信息实体图,如图5-13所示记录编号记录编号所属学院班级号课程编号教师编号教师-课程记录图513在本系统中利用PowerDesigner设计E-R模型。PowerDesigner的概念数据模型(CDM)把现实的信息简化成为实体与实体之间的联系,它与DBMS无关。CDM的建立示一个比较复杂的过程,实体关系图的分析结果也非常复杂,一般情况下使用从简到繁的方式进行设计。首先从大的方面中设计出各个实体之间的关系,然后在这个关系的基础上对各个细节进行细化。如图5-14所示,为学生管理系统的实体关系简图学生学生课程教师班级图5-14在进行详细设计的实体图设计时,除了有学生,班级,教师,课程基本实体分别记录学生,班级,教师,课程的基本信息外,考虑到便于系统管理员管理学生用户,设计了用实体用户,记录用户登陆系统时的用户名,密码以及权限。同时对于学生选课和教师教课都应该有记录,因此设计了学生选课和教师教课表,其中学生选课表里,包含了学生选课的内容和各门成绩,便于管理员对成绩的录入,修改以及用户对成绩的查询和检索;教师教课表的内容主要时包含教师所教课程的信息。3.表/字段分析表/字段分析是建立在试题关系图基础上的。表字段分析后也可以利用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.创建数据库在MicrosoftSQLServer2000中,创建SMS数据库的步骤如下:启动MicrosoftSQLServer企业管理器。在控制台树中右击“数据库”节点,然后从快捷菜单中选择“新建数据库”命令,打开“数据库属性”对话框。输入数据库的名称SMS,单击“确定”按扭,结束表命令操作。数据库创建完毕。3.创建表创建完CMS数据库后,开始往数据库里添加表。我们把添加过程进行罗列。下面是创建SMS系统Book表的操作步骤:在MicrosoftSQLServer企业管理器中,展开“数据库”和SMS节点。右击“表”节点,然后从快捷菜单中选择“新建表”命令。设计表的结构,包括设计表中每个字段的名称,类型,和长度等在拟创建的SMS的users表中,我们选中User-id字段,然后单击工具栏的“设置主键”按扭,将此字段设置为主键。作为主键的字段不允许为空。单击工具栏的“保存”按扭,然后在弹出的对话框中输入表名users。单击“确定”按扭,返回表设计器。单击标题栏的“关闭”按扭。按同样的方法创建SMS中的其他表。创建完毕后的SMS表项列表。创建表后,如果要往表里添加记录,请单击“表”节点,用户管理表的超级管理员信息需要在系统运行前进行初始维护。方法如下:在右边窗格中右击相应的表,然后从快捷菜单中选择“打开表”子菜单,再选择“返回所有行”命令,接着输入每条记录的各个字段的值,在SMS系统中我们打开users表添加一项管理员的记录,作为系统以后初次运行的第一操作员。3.创建存储过程构建了数据库的表结构以后,接下来创建负责表中信息选择,添加,更新以及删除的相关过程,由于存储过程底册应用会给系统带来优化并提高效率,系统使用了如下5个存储过程。select_student_1存储过程insert_student_1存储过程insert_course_1存储过程insert_class_1存储过程update_student_1存储过程3.7数据库连接/数据库具体配置系统采用对数据库配置进行统一管理的方法,即将程序中用到的所有连接字符串信息统一放到Config.web配置文档中,在程序中对该文档的这一配置进行调用,实现统一改统一用。对于数据库调用字符串,数据库使用的是本地数据库,数据源设置为localhost;用户ID设置赋值为系统默认的sa;PWD赋值为sa,这一参数与数据库安装时对sa用户密码设置有关,数据库名称设为SMSS在文档中,SMS数据库设置部分集中〈appsetting〉与〈/appsetting〉之间,主要的是数据库连接字符串。而其他的设置主要是面向应用程序,提供服务。Config.web的配置文档的相关主要代码如下:<?xmlversion="1.0"encoding="utf-8"?><configuration><appSettings><addkey="dsn"value="DataSource=localhost;UID=sa;PWD=sa;DATABASE=CMS"/></appSettings><><compilationdefaultLanguage="c#"debug="true"/><customErrorsmode="RemoteOnly"/><authenticationmode="Windows"/><traceenabled="false"requestLimit="10"pageOutput="false"traceMode="SortByTime"localOnly="true"/><sessionStatemode="InProc"stateConnectionString="tcpip=:42424"sqlConnectionString="datasource=;userid=sa;password="cookieless="false"timeout="20"/><globalizationrequestEncoding="utf-8"responseEncoding="utf-8"/></></configuration>2.调用S在程序读取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 { protectedSystem.Web.UI.WebControls.TextBoxTbx_userid; protectedSystem.Web.UI.WebControls.TextBoxTbx_userpwd; protectedls.LabelLbl_note; protectedSystem.Web.UI.WebControls.ButtonBtn_enter; privatevoidPage_Load(objectsender,System.EventArgse) { //在此处放置用户代码以初始化页面 } #regionWebFormDesignergeneratedcode overrideprotectedvoidOnInit(EventArgse) { // //CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } privatevoidInitializeComponent() { this.Btn_enter.Click+=newSystem.EventHandler(this.Btn_enter_Click); this.Load+=newventHandler(this.Page_Load); } #endregion privatevoidBtn_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;usingawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;usingSystem.Configuration;namespacesms{ ///<summary> ///student的摘要说明。 ///</summary> publicclassst { 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(); } #regionWebFormDesignergeneratedcode overrideprotectedvoidOnInit(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); } #endregion privatevoidBtn_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;usingns;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{ ///<summary> ///addstudent的摘要说明。 ///</summary> publicclass { 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); } #regionWebFormDesignergeneratedcode overrideprotectedvoidOnInit(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); } #endregion privatevoidBtn_ok_Click(objectsender,System.EventArgse) { SqlCommandcm=newSqlCommand("insert_student_1",cn); cm.CommandType=CommandType.StoredProcedure; try { cm.Parameters.Add(newSqlParam

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论