收藏 分享(赏)

学生网上选课系统的设计与实现.docx

上传人:dzzj200808 文档编号:2774267 上传时间:2018-09-27 格式:DOCX 页数:34 大小:5.69MB
下载 相关 举报
学生网上选课系统的设计与实现.docx_第1页
第1页 / 共34页
学生网上选课系统的设计与实现.docx_第2页
第2页 / 共34页
学生网上选课系统的设计与实现.docx_第3页
第3页 / 共34页
学生网上选课系统的设计与实现.docx_第4页
第4页 / 共34页
学生网上选课系统的设计与实现.docx_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、基于 ASP.net 的学生网上选课系统的设计与实现摘要:随着在校大学生人数的不断增加,教务系统的数据量也不断的上涨。针对学生选课这一环节,本系统从学生网上自主选课以及教师的课程发布两个大方面进行了设计,基本实现了学生的在线信息查询、选课功能以及教师对课程信息发布的管理等功能。本程序由 SQL Server 数据库支持,通过使用 ASP 语言实现。本文对学生网上选课系统进行了系统分析,详细讲述了系统功能,并对数据库设计等方面加以说明。关键词:选课;课程信息发布;MySQL;ASP 1 绪论1.1 课题背景随着教学体制的不断改革,尤其是学分制、选课制的展开和深入,教务日常管理工作日趋繁重、复杂。

2、如何把教务工作信息化,模块化,便捷化是现代大学发展的重点,所以迫切需要研制开发一种综合教务管理软件。在数字校园理论逐步应用的过程中,各校一方面不断投资购建各种硬件、系统软件和网络,另一方面也不断开发实施了各类教学、科研、办公管理等应用系统,形成了一定规模的信息化建设体系。但是,由于整体信息化程度相对落后,经费短缺,理论体系不健全等原因,国内各校教务管理系统在机构设置、服务范围、服务质量及人员要求上与国外高校相比都有一定的差距。目前国家的教育体制也正处在不断改革、创新的阶段,教育部门充分吸取国外优秀的教学模式,结合国内多年的办学经验,逐步探索出适合中国特色的教学形式,国家教育部面向各级各类学校开

3、展了全面学分制改革。随着无纸化办公的一步步实现,信息的自动处理以及网络式的信息交互方式越来越被人们认可和应用。让计算机来管理学生的信息是现在各个高校都在积极进行的工作之一,也是高校教学管理工作的重要内容之一。网上选课与传统的选课方式相比更加节约资源,同时,随着学生选课自主权的增加,网上选课有效的避免了“走关系”等不良现象,使教学更加透明,为进一步实现完善的计算机教务管理系统和全校信息系统打下良好的基础。1.2 所用软件的基本知识1.2.1MySQLMySQL 有关数据库方面的操作。注意:必须首先登录到 mysql 中,以下操作都是在mysql 的提示符下进行的,而且每个命令以分号结束。操作技巧

4、:如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就 OK。基本命令:列出数据库 show databases;选择数据库 use 库名;列出表格 show tables;显示数据表的结构 describe 表名;建库 create database 库名;建表 use 库名;create table 表名(字段设定列表 );删库和删表 drop database 库名;drop table 表名;将表中记录清空 delete from 表名;显示表中的记录 select * from 表名;将

5、文本数据转到数据库中 load data local infile “文件名“ into table 表名;(注意:文本数据应符合的格式:字段数据之间用 tab 键隔开)1.2.2ASP(Active Server Page)Active Server Pages (ASP) 是服务器端脚本编写环境,是由 Server 端脚本、对象以及组件拓展过的标准主页使用它可以创建和运行动态、交互的 Web 页和基于 Web 的功能强大的应用程序ASP 采用的工作模型是典型的 B/S 过程:()一个用户在浏览器的网址栏中添入 Active Server Pages 文件名称,并回车触发这个Active S

6、erver Pages 的申请。()浏览器将这个 Active Server Pages 的求发送给 IIS()Web Server 接收这个申请要求并由于其asp 的后缀意识到这是个 Active Server Pag的对象来实现服务器与客户端间的交互;可扩充服务器端功能ASP 与浏览器无关,ASP可以将运行结果一 HTML 的格式传送到客户端浏览器,因而可以使用于各种浏览器。2 系统分析2.1 可行性分析可行性分析是指在当前组织内外的具体条件下,系统开发工作必须具备资源和条件,看其是否满足系统目标的要求。在系统开发过程中进行可行性分析,对于保证资源的合理使用,避免浪费和一些不必要的失败,都

7、是十分重要的。()目标和方案的可行性:如果采用人工操作的方式,不仅操作不方便,耗费人力、物力、财力,而且还容易出现错误。所以当前迫切需要一个计算机化的管理信息系统。有了这个系统,就能用较少的人力去管理完成较大的工作量,而各种管理的效率也会大大提高。开发这个系统,能更好地满足学校要求,使学校的各种信息管理实现无纸化,高效化。()技术方面的可行性:本系统是用 ASP 结合 MySql 数据库来开发的一个信息管理软件。ASP 在数据库方面的特长显得尤为突出:适用于多种数据库结构,通过访问各种数据库通用组件,结合客户端能够创建出完美漂亮且高效的各种软件系统。()经济方面的可行性:系统结构采用当前流行的

8、 B/S 结构,对客户的配置要求低,客户端只需要有浏览器可以上网就可以登录服务器进行各种信息的管理。而服务器端也不需要太高的配置,只要有可以运行 asp 程序的解释器,可以说整个系统是以最少的投入完成最好的功能,这就保证了系统的经济可行性。()管理方面的可行性:作为学校教务信息管理系统之一的选课系统,对它的管理也是很方便的,只需要先将系统配置运行起来,然后分配好系统的三个主要角色,就可以投入实际使用,作为系统使用者如管理员,教师和学生基本都是会知道如何进行电脑操作的。根据以上几方面的可行性分析,可以得出结论:学生网上选课系统的开发可行。2.2 功能分析本系统的使用是面向大学院校,系统的使用对象

9、包括系统管理员,教师和学生三种身份,系统管理员登录系统后可以管理学生的信息,管理教师的信息,管理每学期各个班级的必修课程信息,各个专业每个学期的选修课程信息,可以为这些课程进行排课;而教师用户登录系统后可以查询任意学生的信息,可以查询自己的授课信息,可以登记自己所教学生的成绩信息,可以修改自己的登录密码和个人信息;学生用户登录系统后可以查询任一学期自己的成绩信息,如果系统开放了选课功能,可以在指定的日期内登录系统后选修该学期的选修课,可以生成某个学期的课程上课信息表,可以修改自己的个人信息和登录密码。本系统一共有 4 个主模块(身份验证学生管理教师管理管理员管理) ,其中每个管理部分又包含了几

10、个子模快,主要功能可概括为为浏览、查询、修改、添加。2.3 系统程序流程图主界面登录界面用户权限结束学生 教师 管理员登录验证操作图 31 系统程序流程图3 系统总体设计3.1 系统结构设计3.1.1 主要功能本系统主要功能。()身份验证:通过登录才可进入选课系统,登录信息提交后检验登录者的身份是否合法,合法,则转入对应的操作界面。在本系统中,只有三种身份:学生、教师、管理员。()信息浏览:信息浏览包括已选课程浏览、已发布课程信息浏览。已选课程浏览是为学生提供的查看自己已经选择的课程信息以及删除选择课程。已发布课程信息浏览用于各代课老师查询自己已经发布的课程信息,主要用于浏览、核对。()信息查

11、询:信息查询包括教师个人信息查询、课程查询、选课查询。课程查询即查询该课程的相关介绍,包括课程内容、开课地点等内容。教师个人信息是查看及修改对应的老师个人信息。通过选课查询可以查看要选择的课程情况。()信息修改:信息修改包括密码的修改,学生信息的修改,教师信息的修改。(5)信息添加:信息添加包括学生选课、教师课程发布、管理员。学生选课即通过选择选修的课程,添加到学生已选课程中,完成选课任务。教师课程发布即教师添加新的课程信息,新信息发布后,学生可看到发布的信息。管理员添加学生、教师、课程的基本信息。3.1.2 系统模块功能图学生网上选课系统登录功能学生管理功能教师管理功能管理员管理功能登录密码

12、修改已选课程必修课程选修课程学生信息密码修改已发课程教师信息发布课程课程信息教师信息学生信息图 32 系统功能图3.2 数据库设计根据系统功能设计的要求以及功能模块的划分,可以列出以下主要数据项和数据库,主要分为 6 个表:表 Course、表 Student、表 Teacher、表 Admin、表 Selected、表Published表 3.1 课程信息表(Course)名称 字段名称 类别 主键 非空课程编码 CId int Yes Yes教师编号 TId varchar No No课程名称 CName varchar No No课程类别 CType varchar No No供选学院

13、CCollege varchar No No供选专业 CProfessional varchar No No学分 CCredit varchar No No最多人数 CMax varchar No No上课地点 CRoom varchar No No课程介绍 CIntroduction text No No表 3.2 学生信息表(Student)名称 字段名称 类别 主键 非空学号 SId varchar Yes Yes姓名 SName varchar No No性别 SSex char No No所属学院 SCollege varchar No No所在专业 SProfessional va

14、rchar No No班级 SClass varchar No No密码 SKey varchar No No表 3.3 教师信息表(Teacher)名称 字段名称 类别 主键 非空身份证号 TId varchar Yes Yes姓名 TName varchar No No性别 TSex char No No所属学院 TCollege varchar No No所属专业 TProfessional varchar No No密码 TKey varchar No No表 3.4 管理员信息表(Admin)名称 字段名称 类别 主键 非空登录号 AId varchar Yes Yes密码 AKey

15、 varchar No No表 3.5 学生选课信息表(Selected)名称 字段名称 类别 主键 非空学号 SId varchar No No课程编码 CId int No No表 3.6 教师发布课程信息表(Published)名称 字段名称 类别 主键 非空教师证件号 TId varchar No No课程编码 CId int No No4 系统详细设计4.1 身份验证4.1.1 登录功能在登录页面对应的地方输入用户名(学号或身份证号或其它有效证件) ,密码;确认后登录。在提交后,首先通过学号身份证号或其它有效证件对数据库中的Student/Teacher/Admin 表进行检索,若检

16、索到的记录集为空,则说明学号/身份证号或其它有效证件错误,从而转到相应的出错处理程序,若记录集不为空,再进行密码判断,检查密码是否相等,不相等,作出错处理,相等则转入学生老师管理员登录成功的操作页面,并将姓名,密码,学号身份证号或其它有效证件以 session 对象保存起来。出错及系统提示如下:()学号或身份证号或其它有效证件错误,系统这时会提醒“没有该学生!”或“没有该老师!”或“没有该系统管理员!” ;()密码错误,系统提示“密码错误” 。4.1.2 密码修改功能密码的修改的前提是用户成功登录,选择密码修改后,按照页面上的提示,在相应的文本框中输入新密码(两次) ,确定后提交。转入执行的

17、asp 文件后,判断两次输入的新密码是否相等,若不等,出错;否则,用新密码代替旧密码,更新数据库表 Student/Teacher中的“密码”字段。本系统密码采用 MD5 加密。出错及系统提示:新密码两次输入不同,系统提示“两次输入密码不相符合” 。4.2 学生信息管理功能4.2.1 选课信息查询及选课登录成功后,点击菜单“选修课程” ,确定后进入浏览页面。进入页面后,可以对页面上表格内带链接的信息进行查询,例如点击“教师”可查询教师信息。要选择课程,点击“选修该课程”后,该课程就会出现在“已选课程”的表格中。若已选过该课程,系统提示“您已经选了该课程!” 。4.2.2 必修课程信息查询点击菜

18、单“必修课程” ,可看到学生所在专业所开设的必修课程。其中查询数据库所需要的参数是学生的专业信息传递来的。专业信息的获得是通过 session(SId)对数据表 Student查询得到的。进入页面后,可以对页面上表格内带链接的信息进行查询,例如点击“课程名称”可查询课程信息。4.2.3 已选课程信息查询点击菜单“已选课程” ,在选课信息浏览页面中可以查询已经选的课程。课程信息的查询是通过条件对数据表 Course,表 Selected,表 Teacher 等进行查询,将符合条件的信息列出。想要退选课程,点击“取消该课程”按钮即可。4.2.4 学生个人信息点击菜单“学生信息” ,进入选课信息浏览

19、页面查询即可。学生信息的修改首先是通过条件对数据表 Student 进行查询,符合条件后在文本框中输入完整信息后进行覆盖写入,就可以进行信息修改。4.2.5 密码修改点击菜单“学生信息” ,进入选课信息浏览页面。按照页面上的提示,在相应的文本框中输入新密码(两次) ,确定后提交。转入执行的 asp 文件后,判断两次输入的新密码是否相等,若不等,出错;否则,用新密码代替旧密码,更新数据库表 Student 中的“SKey ”字段。出错及系统提示:新密码两次输入不同,系统提示“两次输入密码不相符合” 。4.3 教师课程信息管理功能4.3.1 课程信息发布登录成功后,点击菜单“发布课程” ,进入选课

20、信息浏览页面。如果想要单独查看某专业该教师可发布课程,在查询条件“课程专业”对应的文本框内输入查询信息(不输入信息时,表中显示该教师可发布课程的所有课程信息) ,点击“查询”按钮,即可查询。若要发布课程,按要求输入完整信息(课程名称与课程专业不能改变) ,点击“开设课程”按钮。若输入信息不完整,系统会提示“请输入!” ;当发布的课程的记录已经存在时,系统提示“您已经发布了该课程!” 。当输入的课程名称或课程专业有误,系统提示“发布失败!”。4.3.2 对已发布信息查询对数据表 Course,表 Published 等进行检索,将其中符合条件的信息全部输出;查询需要的参数是由 session 对

21、象获得的身份证号来确定的,由这二者确定出的即是该老师所发布过的课程信息。想要取消发布课程,点击“取消发布课程”按钮即可。4.3.3 教师个人信息点击菜单“教师信息” ,进入选课信息浏览页面查询即可。教师信息的修改首先是通过条件对数据表 Teacher 进行查询,符合条件后在文本框中输入完整信息后进行覆盖写入,就可以进行信息修改。4.3.4 密码修改点击菜单“教师信息” ,进入选课信息浏览页面。按照页面上的提示,在相应的文本框中输入新密码(两次) ,确定后提交。转入执行的 asp 文件后,判断两次输入的新密码是否相等,若不等,出错;否则,用新密码代替旧密码,更新数据库表 Teacher 中的“T

22、Key”字段。出错及系统提示:新密码两次输入不同,系统提示“两次输入密码不相符合” 。4.4 系统管理员信息管理功能4.4.1 管理教师功能教师信息的添加、修改、删除、查询由管理员完成,教师无权使用。()添加:对数据表“Teacher”进行添加操作,生成新记录。在管理员登录成功后,选择“教师信息”即进入教师信息添加页面,输入要添加的教师身份证号、教师姓名等教师信息后(初始密码 admin) ,点击添加按钮即可。出错及系统提示:输入的教师的身份证号已存在,系统则提示“添加失败,请检查教师证件号是否已经存在!” 。()修改:在管理员登录成功后,选择“教师信息”即进入教师信息页面。对数据库中的表“T

23、eacher”查询,在网页相应的的地方显示所要的信息。列出教师信息表后,在表中查询要修改的教师身份证号后,点击“修改”按钮,修改所要修改的教师的信息,点击“更新”按钮,若不修改,则点击“取消”按钮。()删除:在管理员登录成功后,选择“教师信息”即进入教师信息页面。查询要删除的教师身份证号,点击“删除”按钮进行删除。()查询:在教师信息页面,输入要查询专业,点击“查询”按钮即可查询该专业的教师情况。4.4.2 管理学生功能学生信息的添加、修改、删除、查询功能与管理教师信息基本相同,不再赘述。4.4.3 管理课程功能课程信息的添加、修改、删除查询功能与管理教师信息基本相同,不再赘述。5 设计过程中

24、的问题及解决方法5.1 数据库的连接MySQL 与 SQL server 的连接方式大致相同,当 MySQL 与 VS 连接时,需要组件mysql-connector-net,通过查找及实践,完成了数据库的建立和连接。如图 51:图 51 mysql 数据库的连接数据库连接操作类主要代码:/数据库连接字符串private const String connString =“Server=localhost;Database=ChooseCourse;Uid=root;Pwd=sa“;/返回 select 得到的数据集public static DataSet ExecuteSelectSql(

25、 string sqlSelect )MySqlConnection conn = new MySqlConnection(connString);MySqlDataAdapter sda = new MySqlDataAdapter(sqlSelect,conn);DataSet ds = new DataSet();try sda.Fill(ds); catch(MySqlException e) throw new Exception(e.Message); return ds;/执行 insert,update,delete 等语句,返回改变的行数public static int E

26、xecuteSql( string sql )int rows = -1;MySqlConnection conn = new MySqlConnection(connString);MySqlCommand cmd = new MySqlCommand(sql,conn);tryconn.Open();rows = cmd.ExecuteNonQuery();catch(MySqlException e)throw new Exception(e.Message);finallycmd.Dispose();conn.Close(); return rows;5.2 参数的传递在模块的建立时,

27、很多时候发现功能不能正常运行,在检查完程序语句的结构之后,发现并没有错误,于是在检查页面与页面交互时发现了问题,很多地方传递的参数并没有真正的执行,还有些地方没有进行参数的设置,才导致了程序的错误。5.3 公共数据由于一开始没有使用 session 对象,致使很多功能无法实现,在学习了 session 的相关内容后才解决了一些具体的问题,包括网页间的参数的传递,公共信息的保存及提取等。6 系统的实现6.1 登录模块6.1.1 登录模块简介登录模块在本系统中用于区别学生、教师、管理员。出于保密性和方便管理等方面的考虑,不同身份在登录本系统后有不同权限。例如:学生登录系统后可查询及选课,教师登录系

28、统后可发布课程。管理员登录系统后可添加教师、学生及课程信息。通过用户权限,选择正确身份,然后输入用户名(学号或身份证号或其它有效证件) 、密码,登录信息提交后检验登录者的身份是否合法,合法,则转入对应的操作界面。 (初始密码均为 admin,管理员登录用户名 admin)操作主界面登录界面选择用户类型登录验证NY输入用户名密码图 61 登录模块流程图6.1.2 登录模块关键代码主要代码如下:protected void btnLogin_Click(object sender, EventArgs e)/ 登录代码int type = Int32.Parse(ddlLogin.Selected

29、Item.Value);/用户类型选择分三种,用switch (type)来区分string user = txtUser.Text.Trim();/用户证件号,文本框内容赋值给userstring inputkey = txtKey.Text.Trim();/用户密码,文本框内容赋值给inputkeystring key = “;string sql = “;DataSet ds;switch (type)/选择学生,即type值为1,执行case 1;选择教师,即 type值为2,执行case 2;选择系统管理员,即type值为3,执行case 3case 1:/ 验证学生身份代码sql

30、= “select SKey from Student where SId like “ + user + “;/从表Student 中查询学号SId为输入证件号user的学生密码ds = Db.ExecuteSelectSql(sql);/ 执行select类型的sql语句,返回select得到的数据集if (ds != null /将查询到的密码赋值给keyif (MyUtility.MD5(inputkey) = key)/输入密码经过MD5加密,并与key相比较/相等,便可成功登陆学生选课管理主页面Session“Id“ = user;/ 内置对象Session记录用户登录学号Sess

31、ion“Type“ = type; / 内置对象Session记录用户登录类型Response.Redirect(“StudentMain.aspx“);/进入学生选课管理主页面else/密码错误Response.Redirect(“Error.aspx?code=“ + ErrorInfo.ERR_KEYERROR.ToString();/系统提示:密码错误else/不存在该学生Response.Redirect(“Error.aspx?code=“ + ErrorInfo.ERR_NOSTUDENT.ToString();/系统提示:不存在该学生break;case 2:/ 验证教师身份代

32、码/与验证学生身份代码类似break;case 3:/ 验证管理员身份代码/与验证学生身份代码类似break;6.1.3 登录模块截图图 62 登录页面图 63 学生登录错误页面6.2 学生选课模块6.2.1 学生选课模块简介学生选课模块是系统主要模块之一,主要用于学生的网上选课,不同专业学生通过登录选课系统,选择本专业的课程,完成选课任务。菜单:学生信息|必修课程| 选修课程|已选课程,包括选课信息查询及选课、必修课程信息查询、已选课程信息查询、学生个人信息修改、密码修改等。6.2.2 学生选课模块关键代码学生个人信息:protected void Page_Load(object send

33、er, EventArgs e)/ 显示学生信息代码if (!IsPostBack) /表示第一次访问页面时要执行的程序,有点像初始化页面,当你点击了当前页面的一些按钮后,将不会再执行这些程序string sql = “select * from Student where SId like “ + Session“Id“.ToString() + “;/从表Student查询学生的所有信息,条件是:学号SId 为内置对象Session记录的用户登录学号DataSet ds = Db.ExecuteSelectSql(sql); / 执行 select 类型的 sql 语句,返回 select

34、 得到的数据集if (ds != null /将Session记录的用户登录学号在Label控件lbSId 上显示出来txtSName.Text = ds.Tables0.Rows0“SName“.ToString();/在TextBox控件txtSName中显示 select得到的学生姓名if (ds.Tables0.Rows0“SSex“.ToString() = “女“)ddlSSex.SelectedIndex = 0;elseddlSSex.SelectedIndex = 1;/在DropDownList控件ddlSSex中显示 select得到的学生性别txtSCollege.Te

35、xt = ds.Tables0.Rows0“SCollege“.ToString();/在TextBox控件txtSCollege中显示select 得到的学生学院txtSProfessional.Text = ds.Tables0.Rows0“SProfessional“.ToString();/在TextBox控件txtSProfessional中显示select得到的学生专业txtSClass.Text = ds.Tables0.Rows0“SClass“.ToString();/在TextBox控件txtSClass中显示select得到的学生班级密码修改:protected void

36、 btnUpdateKey_Click(object sender, EventArgs e)/密码修改代码if (txtKey.Text.Trim() != txtKeyOk.Text.Trim()/判断输入的新密码与密码确认输入的密码是否相等,若不相等,执行if语句;相等,不执行if语句Response.Write(MyUtility.Alert(“两次输入密码不相符合 “);/系统提示:两次输入密码不相符合return; /返回密码修改页面string sql = “update Student set SKey = “ + MyUtility.MD5(txtKey.Text.Trim(

37、) + “ where SId = “ + Session“Id“ + “;/将表Studen中学号SId为内置对象Session记录的用户登录学号的学生密码更新为修改的密码if (Db.ExecuteSql(sql) = 1) /判断执行update语句,改变的行数是否为1(即表Studen中只有该登录学生的那一行密码信息改变),若为1,则修改成功;否则,则修改失败Response.Write(MyUtility.Alert(“修改成功! “);elseResponse.Write(MyUtility.Alert(“修改失败! “);学生信息修改:protected void btnUpda

38、teInfo_Click(object sender, EventArgs e)/学生信息修改代码string sql = “update Student set SName = “ + txtSName.Text.Trim() + “ +“,SSex = “ + ddlSSex.SelectedItem.Text + “ +“,SCollege = “ + txtSCollege.Text.Trim() + “ +“,SProfessional= “ + txtSProfessional.Text.Trim() + “ +“,SClass = “ + txtSClass.Text.Trim(

39、) + “ +“ where SId like “ + Session“Id“.ToString() + “;/将表Studen中学号SId为内置对象Session记录的用户登录学号的学生信息更新为修改后的信息if (Db.ExecuteSql(sql) = 1)/判断执行update语句,改变的行数是否为1(即表Studen中只有该登录学生的那一行信息改变),若为1,则修改成功;否则,则修改失败Response.Write(MyUtility.Alert(“修改成功! “);elseResponse.Write(MyUtility.Alert(“修改失败! “);选课:protected v

40、oid Page_Load(object sender, EventArgs e)/ 可选课程显示代码if ( ! IsPostBack )string sql = “select Course.CId,Course.CName,Course.CProfessional, Teacher.TName, Teacher.TId,Course.CCredit, Course.CMax, Course.CRoom from Teacher inner join Course on Teacher.TId = Course.TId inner join Published on Course.CId

41、= Published.CId inner join Student on Student.SProfessional = Course.CProfessional where CType like 选修 and Student.SId = “ + Session“Id“ + “;/从表Teacher、表Course中查询要在GridView控件表格中显示的内容,要求课程类型CType为选修,课程编号CId为教师已发布课程表Published中已存在课程编号,教师编号TId为课程信息表Course中已存在的教师编号,课程专业Cprofessional为 Session记录的用户登录学号的学生的

42、专业(即GridView控件表格中显示的内容为教师已发布的本专业的选修课程) DataSet ds = Db.ExecuteSelectSql(sql);if (ds != null gvXxCourse.DataBind();/将查询结果绑定到 GridView控件gvXxCourse(选修课程表)中for (int i = 0; i 0 /将从表Selected中返回的记录数(即已选该课程人数)在gvXxCourse中第i+1行、第7列(即已选人数那一列)显示protected void gvXxCourse_RowCommand(object sender, GridViewComman

43、dEventArgs e) /判断是否已选课代码if (e.CommandName = “Select“) /控件的 CommandName 属性gvXxCourse.DataKeyNames = new string “CId“ ;/主键int index = Convert.ToInt32(e.CommandArgument);string cid = gvXxCourse.DataKeysindex.Values0.ToString();/获取要选择的课程的课程编号cidstring sql = “select * from Selected where CId = “ + cid +

44、“ and SId like “ +Session“Id“.ToString() + “;/从表Selected中查询登录学生的学号及选择的课程的课程编号Db.ExecuteSelectSql(sql);DataSet ds = Db.ExecuteSelectSql(sql);bool flag = false; /选修课程判断标志if (ds != null if (flag)/已选修过Response.Write(MyUtility.Alert(“您已经选了该课程了! “);return;else/未选修过SelectCourse(Int32.Parse(cid); /选课private

45、 void SelectCourse(int cid)/选课代码int max=0,current=0;string sql = “select CMax from Course where CId = “+cid;/查询所选课程允许的最大人数DataSet ds = Db.ExecuteSelectSql(sql);if ( ds != null /最大人数赋值给maxelsereturn;sql = “select count(*) from Selected where CId = “+cid; /查询表Selected 中所选择课程的课程编号的记录数(即已选该课程人数)DataSet

46、ds1 = Db.ExecuteSelectSql(sql);if ( ds1 != null /将记录数赋值给currentelsereturn;if ( current max )/ 判断已选该课程人数是否超出允许的最大人数/超出Response.Write(MyUtility.Alert(“人数已满! “);return;sql = “insert into Selected values(“ + Session“Id“.ToString() + “,“ + cid + “)“; /符合条件,将登录学生学号及所选课程插入表Selected 中if ( Db.ExecuteSql(sql)

47、 = 1 ) /判断执行insert语句,改变的行数是否为1(即表Selected中只有该登录学生的所选的课程的课程编号那一行信息改变),若为1,则选课成功;否则,则选课失败 Response.Write(MyUtility.Alert(“选课成功 “);sql = “select count(*) from Selected where CId = “ + cid;DataSet ds2 = Db.ExecuteSelectSql(sql);if (ds2 != null /更新已选人数elseResponse.Write(MyUtility.Alert(“选课失败 “);6.2.3 学生选

48、课模块截图图 64 学生信息修改页面图 65 选课页面图 66 课程信息查询页面6.3 教师课程管理模块6.3.1 教师课程管理模块简介教师课程管理模块主要用于教师发布新的课程信息,新信息发布后,不同专业的学生可看到发布的关于本专业的课程信息。菜单:教师信息|发布课程|已发课程,包括课程信息发布、对已发布信息查询、教师个人信息、密码修改等。6.3.2 教师课程管理模块关键代码开设课程:protected void Page_Load(object sender, EventArgs e)/ 在此处放置用户代码以初始化页面,显示登录教师可以发布的课程if (!IsPostBack)string sql = “select * from Course where TId like “ + Session“Id“.ToString() + “ or TId like 0“;/从表Course 中查询教师证件号TId 为登录教师证件号或为0(管理员设置的教师证件号初始值,表示没有教师发布该课程)的所有信息DataSet ds = Db.ExecuteSelectSql(sql);if (ds != null gvNewCourse.DataBind();/课程类别分为选修和必修ddlCType.Items.Clear();ddlCType.Items.Add(“

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报