基于c#aspnetWEB的学生选课系统方案_第1页
基于c#aspnetWEB的学生选课系统方案_第2页
基于c#aspnetWEB的学生选课系统方案_第3页
基于c#aspnetWEB的学生选课系统方案_第4页
基于c#aspnetWEB的学生选课系统方案_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

./学士学位论文THESISOFBACHELOR题目基于WEB的学生选课系统学院:专业:班级:学号:学生:指导教师:起讫日期:.目录摘要IAbstractII第一章前言11.1学生选课系统系统概述11.2学生选课系统的目的和意义11.3学生选课系统实现的功能1第二章数据库和开发工具简介32.1学生选课系统的数据库管理系统32.2SQLServer2000的开发环境32.3VisualStudio2005的开发环境32.4开发语言介绍4第三章学生选课系统的设计53.1系统设计53.2数据库设计8第四章学生选课系统的各个功能模块的实现144.1创建ASP.NT144.2首页登陆模块的实现144.3添加院系模块的实现174.4其它模块的设计27第五章学生选课系统的使用325.1系统的浏览方式325.2系统的具体使用方式32结论34参考文献〔References35致36附录37.基于WEB的学生选课系统摘要学生选课系统能够让学生们在网络上自主选择选修课程,教务处的工作人员则通过网络来处理学生的选课信息。这个系统实现了对信息数据的浏览、查询、编辑和管理等基本数据库操作,采取模块化的编写思想,提高了可读性,同时提高了开发效率,从而实现了校园无纸化办公,提高选课的效率,减轻选课操作的工作量,从而提高教学管理的效率。系统使用VisualStudio2005作为开发平台,使用VisualC#.NET和HTML做为程序语言,使用MSSQL作为系统数据库,使用ADO.NET实现对数据库的访问。本系统是一个典型的信息管理系统<MIS>,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。关键字:学生选课系统,.NET,数据库,模块化,信息管理..TheStudentsSelectCourseSystemonWebAbstractTheelectivesystemenablesthestudentstoselectcoursebythemselvesontheinternet.Andthestaffoftheregistrydealwiththeelectiveinformationbytheinternet.Thesystemcarriesoutthebasicdatabaseoperationsuchasbrowsing,inquiring,editingandmanaginginformationdata.Italsocomposesinmodularizewaywitchenhancesreadabilityandexploreefficiency.Thereforethecampusno-paperworkcomestrue,atthesametimeelectiveefficiencyisimprovedandtheworkloadiddecreased.Inthisway,theefficiencyofteachingmanagementisimproved.TheVisualStudio2005isusedasexploitationplatform;VisualC#.NETandHTMLisusedasprogramlanguage;MSSQLisusedassystemdatabase;ADO.NETisusedtovisitthedatabase.ThesystemistypicalMIS,whichincludesthedevelopmentandthemaintenanceofbackgrounddatabaseaswellasthetopapplicationprogram.Astotheformer,settingupabasewithstrongdatacoherenceandintegralityaswellassecurityisdemanded.Astothelater,aprogramwithcompletefunctionwhichiseasytouseisdemanded.Keywords:Electivecoursesystem,.NET,DataBase,Modulation,MIS...TOC\o"1-3"\h\z第一章前言1.1学生选课系统系统概述学生选课系统以Web界面与用户交互,为用户提供信息并接受其操作,同时通过数据库管理系统来存储信息数据。随着网络的飞速发展,学生选课系统已经成为高校必不可少的系统。当今的学生选课系统一般具有如下特点:1.页面模块化这类系统在界面设计上都采用了模块化处理思想,把很多页面的共有部分集成一个模块,例如页面的头部和用户管理员身份验证等,这样在开发时遇到这些相似的页面部分就不需要重新编写,只要利用已编写好的部分就可以了。2.容错思想系统的用户或管理员有时可能会有误操作或违规操作,系统会对这些无效操作予以屏蔽,保证系统正常运行,同时在出现错误时给出错误原因,以便用户或管理员修改或者纠正。3.三层结构设计。此类系统采用三层结构设计、即程序逻辑结构分为用户界面层、业务逻辑处理层和数据存储层。三层分别独立,用户界面与业务逻辑分离,系统的安全性、可维护性和扩展性都大大提高了。1.2学生选课系统的目的和意义网上选课系统针对在校学生和教师使用。从学生的角度来说,由于学校教学制度的改革,现在大部分高等院校开始实行的是学生的自主选课模式。传统的教学模式〔学生按照学校安排好的课程上课已经不能适应新型的教学模式,如果仍然通过纸上的方式选课,一方面浪费了大量的人力、物力资源,另一方面浪费时间以及会在人为的统计汇总过程中出现可避免的差错等情况。随着高校人数的增多,上述弊端会越来越多的暴露出来。如果利用网络进行选课,学生只要在计算机前输入自己的个人选课信息即可完成教务部门原来几倍的作业量。从教师的角度来说,教师提出代课申请完成课程发布的工作更加容易,得到教学的信息更加快捷,因此通过网上选课系统可以大幅度的减少教师的工作量,方便了教学工作。1.3学生选课系统实现的功能为实现无纸化办工,提高选课的效率,减轻选课操作的工作量,从而提高教学管理的效率,开发一个基于WEB的学生选课系统。通过本系统,学生可以在网络上选择自己的课程。同时本系统为院系、教师和学生提供了管理平台,方便学校对课程分配情况进行管理,了解某一门课程的授课教师和上课班级等信息。2.主要功能本选课系统完成下列功能:〔1通用部分:a系统登录:通过指定登录系统〔学生为学号,教师为工号b密码更改:更改自己的密码。c注销:结束用户会话,保证安全。〔2学生部分:a课程查询:查询所有可选修课程表。b选课操作:确定选修课程。c个人课表:查看已选课程。〔3教师部分:a查看课程信息:查看担任课程课表。〔4管理员部分:a院系管理:添加、删除院系。b专业管理:添加、删除专业。c课程管理:添加、删除课程。d学生信息管理:查看信息〔如班级,学号,已经选修课程等。e教师信息管理:查看任课课程及教师详细信息等。..第二章数据库和开发工具简介2.1学生选课系统的数据库管理系统学生选课系统数据库是在对高校学生选修课程工作流程进行了详细的调查,在了解该系统功能,收集支持系统目标的基础数据的情况下建立起来的。本系统以中文版VisualStudio2005为前台开发工具,用SQLServer2000为后台数据库而实现的。其中主要通过ADO.NET技术来访问数据库。2.2SQLServer2000的开发环境2.2.1SQLServer2000的简介MicrosoftSQLServer2000是由微软Microsoft出品,基于关系型数据库的大型数据库系统,它具有独立于硬件平台、对称的多处理器结构、抢占式多任务管理、完善的安全系统和容错功能,并具有易于维护的特点[1]。SQLServer2000全面扩展了SQLServer7.0的性能可靠性和易用性使它成为一个杰出的数据库平台可用于大型联机事务处理数据仓库以及电子商务等[1]。2.2.2SQL语言的简介SQL<StructuredQueryLanguage>,意思为结构化查询语言,是一种介于关系代数与关系演算之间的结构化查询语言。它的主要功能就是同各种数据库建立联系,进行沟通。ANSI〔美国国家标准协会规定SQL是关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据、从数据库中提取数据等[2]。SQL语言之所以能够为用户和业界所接受,并成为国际标准,是因为它是一个综合的、功能极强同时又简捷易学的语言。SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,语言十分简捷,完成核心功能只用了9个动词,SQL语言接近英语口语,因此容易学习,容易使用。2.3VisualStudio2005的开发环境2.3.1VisualStudio2005的简介VisualStudio2005是一套完整的开发工具,用于生成ASPWeb应用程序、XMLWebservices、桌面应用程序和移动应用程序。VisualBasic.NET、VisualC++.NET、VisualC#.NET和VisualJ#.NET全都使用相同的集成开发环境<IDE>,该环境允许它们共享工具并有助于创建混合语言解决方案。另外,这些语言利用了.NETFramework的功能,此框架提供对简化ASPWeb应用程序和XMLWebservices开发的关键技术的访问。VisualStudio.NET提供了若干项目模板,您可以使用它们来开始开发分布式应用程序。企业级模板定义分布式应用程序的初始结构,并且还提供应用程序设计方面的结构性和技术性指导。除预定义企业级模板外,还可以创建自定义模板,供开发人员在小组环境中使用。有关更多信息,请参见企业级模板演练和使用企业级模板创建分布式应用程序的优点。2.3.2VisualStudio2005中ASP.NET的特色:1.ASP.NET是Microsoft开发的一种新技术,就是ASP.NET〔之前称为ASP+,在.NETFramework上提供一个全方位的Web开发平台,提供许多的基础服务协助程序设计师构建企业级的互联网应用程序。ASP.NET是构建、管理、展开Web应用程序最佳的平台。整个ASP.NET是完全使用C#来编写的,并各.NETFramework紧密地整合,提供更模块化的设计方式。且每一个网页都视为一个完全编译过的运行时〔runtime对象,并能够享受面向对象设计、及时编译<Just-In-TimeCompilation>、与动态缓存〔Cache技术所带来的好处。[3]。2.ASP.NET建立在.NETFramework的编程类之上,它提供了一个Web应用程序模型,并且包含使生成ASPWeb应用程序变得简单的控件集和结构[4]。ASP.NET包含封装公共HTML用户界面元素〔如文本框和下拉菜单的控件集。但这些控件在Web服务器上运行,并以HTML的形式将它们的用户界面推送到浏览器。在服务器上,这些控件公开一个面向对象的编程模型,为Web开发人员提供了面向对象的编程的丰富性[4]。3.ASP.NET还提供结构服务〔如会话状态管理和进程回收,进一步减少了开发人员必须编写的代码量并提高了应用程序的可靠性。另外,ASP.NET使用这些同样的概念使开发人员能够以服务的形式交付软件。使用XMLWebservices功能,ASP.NET开发人员可以编写自己的业务逻辑并使用ASP.NET结构通过SOAP交付该服务[5]。2.4开发语言介绍2.4.1VisualC#语言的简介本系统使用的编程语言是C#,这是一种面向对象的编程语言。C#念作CSharp,C#是Microsoft为.NET平台量身订做的程序语言。C#拥有C++的强大功能,以及VisualBasic简易使用的特性。C#是C/C++家族中第一个面向组件〔Component-Oriented的程序语言。组件设计是C#在设计上的重要考虑,置支持属性、方法、事件、设计时属性、运行时属性、使用XML集成文件与注释。使用C#不再需要如IDL、DEF.H等外部文件。C#也可以直接用来开发ASP.NET应用程序。C#是专门为.NETFramework量身订做的语言,它有所有.NETFramework提供的优点,如资源回收〔GarbageCollector,不再有在漏失与指针偏移的情况发生,此外还提供许多重要的机制,如结构化的异常处理和类型安全性等。[6]2.4.2VisualC#语言的特点1.C#是由C和C++派生而来的一种"简单、流行、面向对象、类型安全"的程序设计语言,C#意在综合VisualBasic的高效率和C++的强大功能[7]。2.这是一种非常完美的语言,适用于各种操作系统,并且与Windows紧密地结合在一起。3.想放入C#的任何东西〔无论何种语言,只要在Windows的.NET子系统下建立和包装的都可以使用Windows的运行库[8]。.第三章学生选课系统的设计3.1系统设计系统设计思想本系统才用三层架构设计,它的工作原理图如图3-1所示。用户界面ASP.NET代码用户界面ASP.NET代码功能代码SQLServer数据库提交操作信息返回处理结果生成SQL语句操作数据库返回操作结果数据存储学生选课系统操作界面采用三层架构,用户界面层通过统一的接口向业务层发送请求,业务层按自己的逻辑规则在请求处理后进行数据库操作,然后将数据返回给用户界面层。这样,用户界面与数据存储相互独立,用户界面层甚至可以不知道数据库的结构,而只是通过接口实现操作。这种方式增加了数据库的安全性,同时也降低了对用户界面层的开发要求,因为它根本就不需要进行任何数据库操作。系统模块设计本系统分为用户部分、教师部分和管理员部分,这三部分都会用到数据库中的信息并对数据库进行读写操作,但是它们的功能是独立的,可分开来设计和编写,提高模块聚性,降低耦合性。用户部分的功能模块如下图3-2所示:学生登录学生登录学生信息个人信息管理选课查看选课信息查看个人信息添加选课课程查看选课信息删除选课图3-2用户部分的功能模块图教师的功能模块如下图3-3所示:教师登录教师登录教师登录查看任课表修改密码图3-3教师的功能模图管理员的功能模块如下图3-4所示:管理员登录管理员登录管理员登录院系管理课程管理专业管理教师管理学生管理查看院系添加院系修改院系删除院系查看专业添加专业修改专业删除专业查看课程添加课程修改课程删除课程查看学生教师信息任课信息图3-4管理员的功能模块图系统结构流程图通过上面的需求分析,学生选课系统结构框架流程图如图3-5所示。数据库用户信息表数据库用户信息表学生登录管理员登录

教师登录课程管理专业管理院系管理修改密码删除选课添加选课学生管理教师管理修改密码查看课表后台数据库图3-5系统结构框架流程图3.2数据库设计数据库需求分析用户的需求具体体现在对各种信息的提供、保存、更新和查询,这就要求数据库能充分满足各种数据的输出和输入。通过对上述系统功能的分析,针对学生选课系统的需求,总结出如下的需求信息:用户分学生用户、教师用户和管理员用户。一个院系包括多个专业。一个专业包括多个学生。一个专业包括多门课程。一门课程对应一位教师一个教师可以教多门课程。一个院系对应多个教师。一个学生可选多门课程,每门课程可以由多个学生选学。经过对上述系统功能的分析和需求总结,设计如下所示的数据项:管理员信息,包括用户名和密码。教师,包括教师名、教师工号、所属院系等。学生,包括学号、学生、所属院系、性别、所属专业等。院系,包括院系名称。专业,包括专业名称、所属院系。课程,包括课程名称、上课地点、任课教师、学分、上课时间。〔2数据库概念结构设计:得到上面的数据项和数据结构以后,就可设计出能满足需求的各种实体,以及它们间的关系,再用E-R图表示出来。实体之间关系的E-R图,如图3-6所示。11NNNNN11N1N1院系专业学生课程教师选课图3-6实体之间关系的E-R图管理员信息实体E-R图,如图3-7所示。管理员管理员用户名密码图3-7管理员信息实体E-R图教师信息实体E-R图,如图3-8所示。教师教师教师姓名教师工号所属院系性别职称图3-8教师信息实体E-R图学生信息实体E-R图,如图3-9所示。学生学生姓名学号性别所属院系列产品所属专业身份证号图3-9学生信息实体E-R图学生信息实体E-R图,如图3-10所示。课程课程任课老师教师上课地点课程名称上课时间学分图3-10学生信息实体E-R图数据库逻辑结构设计:本系统使用的是SQLServer2000数据库。SQLServer2000是一个关系数据库管理系统。根据前面数据库的需求分析,可以得出如下数据表:1、学生信息表<Stu_infor>:该表包括学生学号<Stu_id>、<Stu_name>、性别<Sex>、号<Identification>、学历<Edu_gb>、学制<Edu_sys>、院<系><Depat>、专业<Profession>、班级<Class>、已修学分<Credit>等字段。具体描述信息请参照表3-1所示。表3-1学生信息表<Stu_infor>字段名数据类型说明Stu_idvarchar为主键,学生学号Stu_namevarcharSexvarchar性别Identificationvarchar号Edu_gbvarchar学历Edu_sysint学制Depatvarchar所属院系Professionvarchar专业Classvarchar班级Creditfloat学分2、教师信息表<Teacher>:该表包括教师工号<Tea_id>、<Tea_name>、性别<Sex>、职称<Tea_tital>、院<系><In_depat>等字段。具体描述信息请参照表3-2所示。表3-2教师信息表<Teacher>字段名数据类型说明Tea_idvarchar为主键,教师工号Tea_namevarcharSexvarchar性别Tea_titalvarchar职称In_depatvarchar所属院系3、院<系>表〔Depat:该表包括院系编号<Dep_id>和名称<Dep_name>。具体描述信息请参照表3-3所示。表3-3院<系>表<Depat>字段名数据类型说明Dep_idint为主键,院系编号Dep_namevarchar学院名称4、专业表<Profession>:该表包括专业编号<Pro_id>、专业名称<Pro_name>、院系<In_depat>字段。具体描述信息请参照表3-4所示。表3-4专业表<Profession>字段名数据类型说明Pro_idint为主键,专业编号Pro_namevarchar专业名称In_depatvarchar所属院系5、课程表<Course>:该表包括课程编号<Cou_id>、课程名称<Cou_name>、学分<Credit>、任课教师<Cou_teacher>、上课地点<Cou_class>、上课时间<Cou_describe>等字段。具体描述信息请参照表3-5所示。表3-5课程表<Course>字段名数据类型说明Cou_idint为主键,课程编号Cou_namevarchar课程名称Cou_creditfloat学分Cou_teachervarchar任课教师Cou_classvarchar上课地点Cou_describevarchar上课时间6、学生选课表<Stu_course>:该表包括学生学号<Stu_id>和课程编号<Cou_id>。具体描述信息请参照表3-6所示。表3-6学生选课表<Stu_course>字段名数据类型说明Stu_idvarchar关联为学生信息表〔Stu_inforCou_idint关联为课程信息表〔Course7、管理员表<User_admin>:该表包括<Admin_id>和密码<Password>。具体描述信息请参照表3-7所示。表3-7管理员表<User_admin>字段名数据类型说明Admin_idvarchar管理员passwordvarchar密码8、教师表<User_tea>:该表包括<Tea_id>和密码<Password>。具体描述信息请参照表3-8所示。表3-8教师表<User_te>字段名数据类型说明Tea_idvarchar教师passwordvarchar密码9、学生表<User_student>:该表包括<Stu_id>和密码<Password>。具体描述信息请参照表3-9所示。表3-9学生表<User_student>字段名数据类型说明Stu_idvarchar学生学号passwordvarchar密码数据库的具体实现〔此处只以学生信息表的代码为例1.建立数据库的代码建立名为ST_Select_Course的数据库并建立用户信息表Stu_infor,代码如下:createdatabaseST_Select_CourseuseST_Select_CoursecreatetableStu_infor<Stu_idvarchar<20>primarykeynotnull,Stu_namevarchar<20>notnull,Sexvarcher<8>,Identificationvarchar<50>,Edu_gbvarchar<10>,Edu_sysint,Depatvarchar<20>,Professionvarchar<50>,Classvarchar<50>,Creditfloat>>.第四章学生选课系统的各个功能模块的实现4.1创建ASP.NT在完成了数据库的设计和创建,接下来介绍系统的具体设计方法和代码。首先创建一个VisualC#的ASP.NET,操作步骤如下:1.启动VisualStudio2005开发环境后,选择"文件"——"新建"命令。2.在"新建"对话框里,语言选择VisualC#,其它保持默认设置。具体设置如图4-1所示。图4-1创建"ASP.NET"窗口4.2首页登陆模块的实现创建完成后,自动创建了一个文件名为"Default.aspx"的网页,在这里保持其默认名<Default.aspx>为首页面。下面向网页中添加控件并完成布局,布局完成后的效果见图4-2所示。图4-2系统首页在登录页面中,使用的控件及其属性设置请参照表4-1所示。表4-1登陆页面属性设置表控件名ID描述DropDownListmydropdownlist为用户提供选择身份类型TextBoxUser_id接受用户输入用户名TextBoxPassword接受用户输入密码ImageButtonLogin_click取消按钮IimageButtoncancel取消按钮Buttongetpassword第一次使用系统激活密码登陆页面主要是为了完成对用户类型,用户名,密码的验证,完成用户的登陆过程。在此需要说明的是,服务器控件mydropdownlist是用于系统判断用户类型,所在Default.aspx页面后台代码Page_Load事件中加入一段代码用于初始mydropdownlist控件的值。这段代码如下:if<!IsPostBack>{ArrayListiden=newArrayList<>;iden.Add<"学生">;iden.Add<"教师">;iden.Add<"管理员">;mydropdownlist.DataSource=iden;mydropdownlist.DataBind<>;}另外,因为在登录后还需要用到用户的登录信息,所以在这里使用了SESSION来记录用户的登录账号。完成登录功能的后台代码如下:usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;trols;usingSystem.Collections;usingSystem.Data.SqlClient;publicpartialclass_Default:System.Web.UI.Page{protectedvoidPage_Load<objectsender,EventArgse>{if<!IsPostBack>{ArrayListiden=newArrayList<>;iden.Add<"学生">;iden.Add<"教师">;iden.Add<"管理员">;mydropdownlist.DataSource=iden;mydropdownlist.DataBind<>;}}protectedvoidlogin_Click<objectsender,ImageClickEventArgse>{inta=mydropdownlist.SelectedIndex;stringmycomm_txt;SqlConnectionmyconn=newSqlConnection<ConfigurationSettings.AppSettings["connection"]>;if<a==0>mycomm_txt="selectcount<*>fromUser_stuwhereStu_id='"+user_id.Text+"'andpassword='"+password.Text+"'";elseif<a==1>mycomm_txt="selectcount<*>fromUser_teawhereTea_id='"+user_id.Text+"'andpassword='"+password.Text+"'";elsemycomm_txt="selectcount<*>fromUser_adminwhereAdmin_id='"+user_id.Text+"'andpassword='"+password.Text+"'";//default:mycomm_txt="selectcount<*>fromUser_stuwhereStu_id='"+user_id.Text+"'andpassword='"+password.Text+"'";SqlCommandmycomm=newSqlCommand<mycomm_txt,myconn>;myconn.Open<>;objectobj=mycomm.ExecuteScalar<>;if<obj!=null&&obj.ToString<>!="0">{//FormsAuthentication.SetAuthCookie<user_id,false>;if<a==0>{Stringid="student.aspx?id="+user_id.Text;Response.Redirect<id>;Response.Redirect<"student.aspx">;}elseif<a==1>{Session["tea_id"]=user_id.Text;//Stringid="student.aspx?id="+user_id.Text;//Response.Redirect<id>;Response.Redirect<"teacher.aspx">;}elseResponse.Redirect<"main.aspx">;}else{Response.Write<"<scriptlanguage='javascript'>alert<'登录失败!'>;</script>">;}myconn.Close<>;}protectedvoidcancel_Click<objectsender,ImageClickEventArgse>{user_id.Text="";password.Text="";}protectedvoidget_password_Click<objectsender,EventArgse>{Response.Write<"<scriptlanguage='javascript'defer>ret=window.showModalDialog<'stu_get_password.aspx?Action=add',window,'dialogHeight:150px;dialogWidth:230px;center:Yes;Help:No;Resizable:No;Scroll:auto;Status:no;'>;</script>">;}}4.3添加院系模块的实现右键单击"解决方案管理器"的"ST_Select_Course"的"添加新项",然后在里面选择"Web窗体",给窗体改名为"main.aspx"。具体请参照图4-3所示。图4-3添加新项在这里需要重点强调的是,整个系统分三个部分,分别是后台管理部分也就是管理员权限部分,教师部分和学生部分。三个身份登录系统后的首页面分别为main.aspx、teacher.aspx、student.aspx,它们的页面效果分别请参见如下图4-4、图4-5、图4-6所示。图4-4管理员登录界面图4-5教师登录界面图4-6学生登录界面显然,三个身份登录后的界面几乎是相同的,这里我们需要提一下的是模块的重复使用性,以提高程序开发效率,在此重点解释管理员登录界面的实现。管理员登录界面其实是包含了两个部分,上部是一个名为top_aspx的页面,下部为body.aspx的页面。其中,top_aspx主要用于描述系统功能操作,body.aspx主要作为一个容器,用来显示系统操作结果。Main.aspx页面代码如下:<%PageLanguage="C#"AutoEventWireup="true"CodeFile="main.aspx.cs"Inherits="main"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""./TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="./1999/xhtml"><headid="Head1"runat="server"><title>欢迎进入学生选课系统</title><linkhref="css/style.css"rel="stylesheet"type="text/css"/></head><body><tablewidth="100%"height="421"border="0"><trwidth="100%"height="99"><tdvalign="top"><iframesrc="common/top.aspx"name="top"scrolling="no"framespacing="0"frameborder="no"border="0"width="100%"height="100%"></iframe></td></tr><trwidth="100%"height="100%"><tdvalign="top"><iframesrc="common/body.aspx"name="body"scrolling="auto"framespacing="0"frameborder="no"border="0"width="100%"height="100%"></iframe></td></tr></table></body></html>阅读如上代码会发现,main.aspx页面只有两个框架,上部分是top.aspx,用于操作导航部分,下部分是body.aspx,作为一个容器,用于显示操作结果。以top.aspx为例,top.aspx的效果如图4-7所示。图4-7top.aspx页面效果其代码如下:<%PageLanguage="C#"AutoEventWireup="true"CodeFile="top.aspx.cs"Inherits="common_top"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""./TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><linkhref="style.css"rel="stylesheet"type="text/css"><!--<metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><linkhref="style.css"rel="stylesheet"type="text/css">--><styletype="text/css"><!--.style1{font-size:13px}--></style></head><body><tablewidth="100%"height="68"border="0"cellpadding="-2"cellspacing="-2"><tr><tdwidth="285"background="../images/default_01.gif"> </td><tdbackground="../images/default_02.gif"> </td><tdwidth="423"valign="top"background="../images/default_03.gif"><tablewidth="100%"border="0"cellspacing="-2"cellpadding="-2"><tr><tdheight="43"colspan="2"> </td></tr><tr><tdwidth="10%"height="22"> </td><tdwidth="90%"align="center"class="shadowstyle1"><ahref="../main_depat.aspx"target="body">院系管理</a>|<ahref="../main_profession.aspx"target="body">专业管理</a>|<ahref="../main_course.aspx"target="body">课程管理</a>|<ahref="../main_teacher.aspx"target="body">教师管理</a>|<ahref="../main_student.aspx"target="body">学生管理</a>|<ahref="../Default.aspx"target="_parent">退出</a></td></tr></table></td></tr></table><tablewidth="100%"height="31"border="0"cellpadding="-2"cellspacing="-2"><tr><tdwidth="283"height="31"background="../images/default_04.gif"style="height:37px"><tablewidth="96%"height="22"border="0"cellpadding="-2"cellspacing="-2"><tr><tdwidth="5%"style="height:22px"></td><tdwidth="55%"align="center"class="word_grey"style="height:22px"><scriptlanguage="JavaScript">//制作年月日的JavaScript代码vartoday=newDate<>;varmonth=today.getMonth<>+1if<today.getDay<>==1>{document.write<" "+today.getYear<>+"年"+month+"月"+today.getDate<>+"日星期一">;}if<today.getDay<>==2>{document.write<" "+today.getYear<>+"年"+month+"月"+today.getDate<>+"日星期二">;}if<today.getDay<>==3>{document.write<" "+today.getYear<>+"年"+month+"月"+today.getDate<>+"日星期三">;}if<today.getDay<>==4>{document.write<" "+today.getYear<>+"年"+month+"月"+today.getDate<>+"日星期四">;}if<today.getDay<>==5>{document.write<" "+today.getYear<>+"年"+month+"月"+today.getDate<>+"日星期五">;}if<today.getDay<>==6>{document.write<" "+today.getYear<>+"年"+month+"月"+today.getDate<>+"日星期六">;}if<today.getDay<>==0>{document.write<" "+today.getYear<>+"年"+month+"月"+today.getDate<>+"日星期日">;}</script><tdwidth="40%"style="height:22px"></td></tr></table></td><tdbackground="../images/default_05.gif"align="left"style="height:31px"></td></tr></table></body></html>通过如上描述,现在可以设计添加院系模块了。选择添加新项,选择Web窗体,命名为main_depat。页面main_depat设计完成之后的效果如图4-8所示。图4-8添加院系图在添加院系页面中,使用的控件及其属性设置请参照表4-2所示。表4-2添加院系页面属性设置表控件名ID描述DataGridmydatagrid显示数据信息TextBoxDepat_name接受用户输入院系名称Buttonadd确定添加按按键其中控件mydatagrid的主要代码如下:<asp:DataGridid="mydatagrid"runat="server"AutoGenerateColumns="false"AllowPaging="true"PageSize="6"PagerStyle-Mode="NumericPages"DataKeyField="dep_name"PagerStyle-HorizontalAlign="Center"OnPageIndexChanged="mydatagrid_page"BackColor="#DBEBFB"BorderColor="DodgerBlue"ShowFooter="false"CellPadding="3"Font-Name="Verdana"Font-Size="8pt"HeaderStyle-BackColor="lightblue"OnEditCommand="mydatagrid_edit"OnDeleteCommand="mydatagrid_delete"OnCancelCommand="mydatagrid_cancel"OnUpdateCommand="mydatagrid_update"Width="100%"BorderStyle="Inset"BorderWidth="1px"><Columns><asp:EditCommandColumnEditText="编辑"CancelText="取消"UpdateText="保存"ButtonType="PushButton"/><asp:ButtonColumnText="<divonclick="returnconfirm<'确实删除该记录吗?'>">删除</div>"HeaderText="删除"CommandName="Delete"></asp:ButtonColumn><asp:TemplateColumnHeaderText="学院名称"><ItemTemplate><asp:LabelID="Label1"runat="server"Text='<%#DataBinder.Eval<Container.DataItem,"dep_name">%>'></asp:Label></ItemTemplate><EditItemTemplate><asp:TextBoxid="edit_dep_name"runat="server"Text='<%#DataBinder.Eval<Container.DataItem,"dep_name">%>'></asp:TextBox><asp:RequiredFieldValidatorid="rfv"runat="server"ControlToValidate="edit_dep_name"Display="Dynamic"ErrorMessage="不可为空"></asp:RequiredFieldValidator></EditItemTemplate></asp:TemplateColumn></Columns><PagerStyleHorizontalAlign="Center"Mode="NumericPages"NextPageText="下一页"PrevPageText="上一页"/><HeaderStyleBackColor="DeepSkyBlue"BorderColor="Chartreuse"BorderStyle="Dotted"Font-Bold="True"/><AlternatingItemStyleBackColor="SkyBlue"BorderColor="LawnGreen"BorderWidth="1px"/><FooterStyleBackColor="White"BorderColor="Lime"/><SelectedItemStyleBackColor="SkyBlue"BorderColor="Lime"ForeColor="LightSkyBlue"/></asp:DataGrid>因为在页面中使用了DataGrid控件,所以必须在页面初始化是绑定数据库。页面main_depat.aspx的后台代码如下:usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Data.SqlClient;{protectedvoidPage_Load<objectsender,EventArgse>{if<!IsPostBack>BindGrid<>;}privatevoidBindGrid<>{try{SqlConnectionmyconn=newSqlConnection<ConfigurationSettings.AppSettings["connection"]>;SqlDataAdaptermycomm=newSqlDataAdapter<"selectdep_namefromdepat",myconn>;DataSetds=newDataSet<>;mycomm.Fill<ds,"depat">;mydatagrid.DataSource=ds.Tables["depat"].DefaultView;mydatagrid.DataBind<>;myconn.Close<>;}catch<System.Exceptione>{Response.Write<e.ToString<>>;}}protectedvoidadd<objectsender,EventArgse>{stringstr_insert="insertintodepat<dep_name>values<dep_name>";SqlConnectionmyconn=newSqlConnection<ConfigurationSettings.AppSettings["connection"]>;SqlCommandmycomm2=newSqlCommand<str_insert,myconn>;mycomm2.Parameters.Add<newSqlParameter<"dep_name",SqlDbType.VarChar,20>>;mycomm2.Parameters["dep_name"].Value=depat_name.Text;myconn.Open<>;if<judgment_weather_repetition<depat_name.Text>==0>try{mycomm2.ExecuteNonQuery<>;BindGrid<>;//myconn.Close<>;}catch{Response.Write<e.ToString<>>;}elseResponse.Write<"<scriptlanguage='javascript'>alert<'已经存在该条记录!'>;</script>">;myconn.Close<>;}publicvoidmydatagrid_edit<Objectsender,DataGridCommandEventArgsE>{mydatagrid.EditItemIndex=<int>E.Item.ItemIndex;BindGrid<>;}publicvoidmydatagrid_update<Objectsender,DataGridCommandEventArgsE>{//stringinit_str=mydatagrid.DataKeys[E.Item.ItemIndex];stringupdat="updatedepatsetdep_name=dep_namewheredep_name='"+mydatagrid.DataKeys[E.Item.ItemIndex]+"'";SqlConnectionmyconn=newSqlConnection<ConfigurationSettings.AppSettings["connection"]>;SqlCommandmycomm_updat=newSqlCommand<updat,myconn>;mycomm_updat.Parameters.Add<newSqlParameter<"dep_name",SqlDbType.VarChar,20>>;mycomm_updat.Parameters["dep_name"].Value=<<TextBox>E.Item.FindControl<"edit_dep_name">>.Text;myconn.Open<>;try{if<judgment_weather_repetition<<<TextBox>E.Item.FindControl<"edit_dep_name">>.Text>==0>{mycomm_updat.ExecuteNonQuery<>;Response.Write<"<scriptlanguage='javascript'>alert<'已成功更新!'>;</script>">;}elseResponse.Write<"<scriptlanguage='javascript'>alert<'您更改后的记录已经存!'>;</script>">;}catch<System.Exceptione>{Response.Write<e.ToString<>>;}myconn.Close<>;BindGrid<>;}publicvoidmydatagrid_cancel<Objectsender,DataGridCommandEventArgsE>{mydatagrid.EditItemIndex=-1;BindGrid<>;}publicvoidmydatagrid_delete<Objectsender,DataGridCommandEventArgsE>{SqlConnectionmyconn=newSqlConnection<ConfigurationSettings.AppSettings["connection"]>;stringdel="deletefromdepatwheredep_name=dep_name";SqlCommandmycomm_del=newSqlCommand<del,myconn>;mycomm_del.Parameters.Add<newSqlParameter<"dep_name",SqlDbType.VarChar,20>>;mycomm_del.Parameters["dep_name"].Value=mydatagrid.DataKeys[E.Item.ItemIndex];myconn.Open<>;try{mycomm_del.ExecuteNonQuery<>;Response.Write<"<scriptlanguage='javascript'>alert<'成功删除!'>;</script>">;}catch<System.Exceptione>{Response.Write<e.ToString<>>;}BindGrid<>;myconn.Close<>;}publicvoidmydatagrid_page<Objectsender,DataGridPageChangedEventArgsE>{try{mydatagrid.CurrentPageIndex=E.NewPageIndex;BindGrid<>;}catch<System.Exceptione>{Response.Write<e.ToString<>>;}}privateintjudgment_weather_repetition<stringa>{SqlConnectionmyconn=newSqlConnection<ConfigurationSettings.AppSettings["connection"]>;stringstr="selectcount<*>fromdepatwheredep_name='"+a+"'";SqlCommandmycomm1=newSqlCommand<str,myconn>;myconn.Open<>;int

温馨提示

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

评论

0/150

提交评论