基于BS的实验室预约系统毕业论文.doc
基于B/S的实验室预约系统摘 要实验室是高等院校实施素质教育、培养学生创新精神与实践能力的重要基地。实验室对教师和学生开放,为教师和学生提供实践教学条件是实现教学改革的重要容。目前各大学的实验项目日益繁多,如何合理预约实验室,已经成为当今各个大学实验室课程预约的难题。基于B/S结构的开放实验室预约系统针对原有手工管理效率低下,缺乏安全性、可控性等缺点,以校园网为依托,采用科学、高效的教学管理方式,使教师预约实验室比原来更加方便、快捷。因此,本次设计的系统就是研究实验室预约的相关问题。实验室预约系统的设计主要是基于B/S模型,在Windows系统下,运用ASP.NET平台和Access2000数据库实现实验室预约功能。该设计主要实现了实验室的预约和管理功能。预约功能包括老师对实验室信息、实验项目和实验预约情况的查询以与对实验室的预约;学生对老师预约情况和实验项目预约情况的查询。管理功能包括教师、学生、管理员三者的登录、注册、个人资料管理,管理员对实验室的管理与对教师预约信息的删除功能。最后通过调试、完善该系统,基本实现了高校实验室预约、管理功能。关键词:实验室预约;B/S;Access 2000;VB.NETLAB RESERVATION SYSTEM BASEDON B/S STRUCTUREABSTRACTAt present the University of pilot projects, there were more, how to reasonably make an appointment laboratory, has become the university laboratory courses each reservation problems. Therefore, this laboratory is the research laboratory appointment booking system related problems. Lab Reservation System is mainly based on B / S model, the Windows system, Access2000 database using ASP.NET platform and features in laboratory appointments. Main achieved the design lab appointments and management functions. Appointments include the teacher information on the laboratory, pilot projects and experimental booking situation of inquiry and the laboratory's appointment; student teacher appointment booking situation and the situation of the pilot project inquiries. Management function including staff, students, administrators three login, registration, personal data management, the administrator of the laboratory management with the appointment of teachers of information delete function. Finally, debug and improve the system, basically a university laboratory appointment, management functions.KEY WORDS:Lab Reservation; B/S; Access2000;VB.NET.目录前言1第1章绪论21.1 研究背景21.2 研究现状21.3 研究目标与意义21.4 论文主要工作3第2章相关技术42.1 B/S技术42.2 开发工具42.2.1 ASP.NET概述42.2.2 Access 概述6第3章概要设计83.1 功能模块设计83.1.1 功能模块划分83.1.2 各功能模块设计83.2 数据库设计93.2.1 数据库的引入93.2.2 数据库的设计原则103.2.3 数据库结构设计与实现11第4章详细设计154.1 模板页的设计154.2 教师模块164.2.1 预约界面164.3.3 教师查询页面224.4 学生模块234.4.1 学生查询234.4.2 学生密码修改244.5 管理员模块26结论31辞32参考文献33前言信息技术的迅猛发展带来了教育方式和管理方式的变革,随着高校规模的不断扩大和教学管理需求的不断提高,引进先进的信息化手段,实现教学管理方式的网络化和智能化成为教学改革的必然趋势。实验室是高等院校实施素质教育、培养学生创新精神与实践能力的重要基地。目前高等学校实验教学改革正在不断地深入,逐渐由封闭型向开放型过渡。实验室对教师和学生开放,为教师和学生提供实践教学条件是实现教学改革的重要容。现在实验室管理人员的工作负担越来越重,为了减轻实验室管理人员的工作负担,同时针对目前实验室预约越来越庞杂的管理局面,开发一套实验室网上预约的管理系统势在必行。基于B/S结构的开放实验室预约系统针对原有手工管理效率低下,缺乏安全性、可控性等缺点,以校园网为依托,采用科学、高效的教学管理方式,使教师预约实验室比原来更加方便、快捷。实验室预约系统将具有良好的开放性、扩展性、完善的系统功能,能全面满足对实验室大量信息进行管理等需求。整个系统既为学生、教师提供了一个简单易用的浏览界面,也为管理员提供了一个通用的、友好的、易扩展的管理界面,并对以后进一步扩大管理系统的规模提供了良好的建设平台,具有很好的灵活性。第1章 绪论1.1 研究背景实验室是高等院校实施素质教育、培养学生创新精神与实践能力的重要基地。实验室对教师和学生开放,为教师和学生提供实践教学条件是实现教学改革的重要容。为了提高实践教学水平,规实验室开放管理,迫切需要一套能够替代传统管理方式的实验室预约系统。因此,决定开发本系统,运用信息技术和计算机管理技术,建立实验室预约平台,在网上公布实验室开放状态等信息,并采用网上预约的形式,方便教师通过网络实时查看实验室开放情况,也方便学生通过网络了解实验课程状况。1.2 研究现状目前,传统的实验室管理方式为:教师通过或到实验室进行实验室预约的申请,管理员用手工记录实验室预约情况,管理员根据教师申请的具体条件和时间进行实验室分配,通知教师实验室预约成功或失败。传统的操作方式比较繁琐,工作量大,操作也不规。信息技术的迅猛发展带来了教育方式和管理方式的变革,随着高校规模的不断扩大和教学管理需求的不断提高,引进先进的信息化手段,实现教学管理方式的网络化和智能化成为教学改革的必然趋势。目前高等学校实验教学改革正在不断地深入,逐渐由封闭型向开放型过渡。现在实验室管理人员的工作负担越来越重,为了减轻实验室管理人员的工作负担,同时针对目前实验室预约越来越庞杂的管理局面,开发一套实验室网上预约的管理系统势在必行。1.3 研究目标与意义实验教学是高等教育的重要环节,是培养学生实践能力的重要场所。加强实验室建设,不仅仅是硬件和资金的投入,更应该发挥计算机网络技术的优势。提出一种基于Web的网上预约管理系统,有效合理地分配和使用开放性实验室资源,调动学生进行实验的主动性。本次开发,将实现实践教学的动态、开放性管理,达到提高实践教学的工作效率,优化资源配置,提高实验管理水平的目的。设计的系统可以实现预约系统的基本功能,如老师对实验室的预约,管理员对现有的实验批次进行管理,学生和老师可以对实验信息进行相关的查询等。1.4 论文主要工作本次开发的系统主要实现了三个角色权限下对应的各种不同的功能,有教师对实验室的预约,教师对实验信息的查询,学生对所在班级实验信息的查询,管理员对实验信息与用户信息的修改,用户密码修改以与不同权限的注册等功能。本论文中针对系统的主要模块的部分功能与实现进行了详细的阐述,如教师预约功能,教师查询功能,管理员对实验信息的修改功能以与学生查询功能等。通过本论文的介绍使用户在使用该系统前就可以对该系统的功能与实现过程有个大致的了解,对该系统的使用更加的容易。第2章 相关技术2.1 B/S技术B/S就是浏览器/服务器,是Brower/Server的缩写。客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix、Access或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。在B/S结构中,浏览器端与应用服务器端采用请求/响应模式进行交互。交互的过程如下。 1. 客户端接受用户的请求; 2. 客户端向应用服务端发送请求:客户端把请求消息(包含用户名、 密码等信息)发送到应用服务器端,等待服务器端的响应; 3. 数据处理:应用服务器端通常使用服务器端脚本语言,如JSP、ASP.Net等,来访问数据库,获得查询结果; 4. 发送响应:应用服务器端向客户端发送响应消息(一般是动态生成的HTML页面),并由用户的浏览器端,解释HTML文件,呈现用户界面。2.2 开发工具2.2.1 ASP.NET概述ASP.NET又叫ASP+,但并不仅仅是ASP的简单升级,而是MicroSoft推出的新一代Active Server Pages脚本语言。ASP.NET是微软发展的新型体系结构.NET的一部分,它的全新技术架构会让每一个人的网络生活都变得更简单。ASP.NET是.NET框架中专门用来开发网上应用程序的,它其实不是一种语言,而更像一个框架,在这个框架下可以采用VB.NET、C#等其它.NET语言开发网上程序。1. ASP.NET的功能和特点(1) 效率增强采用编译后运行的方式,当用户第一次访问页面时对页面进行编译,以后再访问时就直接运行,这样尽管第一次会稍微慢些,单以后速度就会大大提高。(2) 顶级开发工具支持ASP.NET可以在Visual Studio.NET中开发,支持所见即所得、拖放控件和自动部署等功能,可以使开发效率大大提高。(3) 程序结构清晰在ASP中,ASP代码和HTML标记使参杂在一起的,其实是将ASP代码嵌入到了HTML文档中。而ASP.NET可以将程序代码和HTML标记分开,使得程序结构更清晰。(4) 开发简单ASP.NET中的很多特性使得开发更简单。如它提供的验证控件可以方便地验证客户是否正确填写表单容,就不需要自己编写大段验证代码。另外,提交表单后,可以自动保留客户在表单输入的容。(5) 移植方便在ASP.NET中,可以向目标服务器直接复制该组件,当需要更新时,重新复制一个即可。ASP.NET会自动逐步用新的组件替换旧的组件。(6) Web服务所谓Web服务,就是一种特殊的Web组件,该组件有一些属性和方法,其它网上应用程序或传统应用程序可以远程调用这些属性和方法,并返回一个简单的结果。比如你提供了一个计算存储利息的Web服务,别人就可以用自己的程序中向你传递相应的参数,并返回计算后的利息,然后继续用在自己的程序中。2. ASP.NET的运行环境要正确运行ASP.NET,服务器必须安装如下软件:(1)Windows 2000 Professional或Windows 2000 Server或Windows 2000 Advance Server或Windows XP Professional或更高版本,其中Windows 2000系列需要安装Service Pack2.0;(2) IIS 5.1(3) MDAC 2.7(4) .Net Framework客户端只要是普通的浏览器即可,如Internet Explorer5.0或更高版本。3. ASP.NET的开发工具开发ASP.NET文件,最好的工具是Microsoft Visual Studio.NET,利用它就可以实现所见即所得的编辑,并可以实现拖放控件、自动部署、自动分离程序代码和HTML代码等功能。本次设计用的是Microsoft Visual Studio 2005来开发系统。Microsoft Visual Studio是开发ASP.NET文件最好的工具。利用它可以实现拖放控件,自动部署,自动分离程序代码和HTML代码等功能。Visual Studio具有强大的数据库管理功能,利用数据绑定控件和数据源控件,可以直接建立或处理Microsoft Access格式的数据库,并提供了强大的数据存储和检索功能。同时Visual Studio还能直接编辑和访问其他外部数据库,如FoxPro,Paradox等,这些数据库格式都可以用Visual Studio编辑和处理。 Visual Studio还提供开放式数据连接,即ODBC功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如SQL Server,Oracle等。2.2.2 Access 概述Microsoft Access 数据库管理系统是Microsoft Office 套件的重要组成部分,先后出现了Access 97、Access 2000 和Access XP。其中Access XP是最新版本。Access适用于小型商务活动,用以存储和管理商务活动所需要的数据。Access不仅是一个数据库,而且它具有强大的数据管理功能,它可以方便地利用各种数据源,生成窗体(表单),查询,报表和应用程序等。Microsoft Access是一种关系式数据库,关系式数据库由一系列表组成,表又由一系列行和列组成,每一行是一个记录,每一列是一个字段,每个字段有一个字段名,字段名在一个表中不能重复。Access数据库以文件形式保存,文件的扩展名是MDB。Access 2000数据库由七种对象组成:表、查询、窗体、报表、页、宏和模块。表(Table) 表是数据库的基本对象,是创建其他6种对象的基础。表由记录组成,记录由字段组成,表用来存储数据库的数据,故又称数据表。查询(Query)查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。窗体(Form)窗体提供了一种方便的浏览、输入与更改数据的窗口。还可以创建子窗体显示相关联的表的容。窗体也称表单。报表(Report)报表的功能是将数据库中的数据分类汇总,然后打印出来,以便分析。页(Page) 也叫数据访问页。是连接到数据库的 Web 页,在数据访问页中,可以查看、添加、编辑和操作存储在数据库中的数据。数据访问页还可以包括其他来源的数据,例如 Microsoft Excel。宏(Macro)宏相当于DOS中的批处理,用来自动执行一系列操作。Access列出了一些常用的操作供用户选择,使用起来十分方便。模块(Module)模块的功能与宏类似,但它定义的操作比宏更精细和复杂,用户可以根据自己的需编写程序模块使用Visual Basic 6.0编程。第3章 概要设计3.1 功能模块设计3.1.1功能模块划分登陆界面管理员实验信息修改用户信息管理教师实验预约实验信息查询密码修改学生实验信息查询密码修改密码修改图3-1 系统功能模块流程图通过系统功能需求分析,设计出系统功能模块实现流程图,如下图3-1所示。3.1.2各功能模块设计根据系统的功能可分为四大模块:登录模块,管理员模块、教师模块和学生模块。1. 用户登陆用户登录界面的设计主要是从系统的安全性角度考虑的。系统的登录身份有三种,分别是:管理员,教师和学生。用户输入的账号和密码必须得到系统的认证,方可进入系统;否则系统会给出相关的友好提示,用户可根据提示重新输入账号和密码。如果没有注册,可以单击注册,到相关页面进行用户注册。2. 管理员模块在该权限中,管理员可以对实验室和预约信息以与用户信息进行修改、删除等操作。具体如下:(1). 对已预约的实验室信息进行修改和删除。(2). 对已注册的教师和班级信息进行管理。(3). 进行密码修改3. 教师模块教师模块的主体就是对实验室进行预约。教师预约时,其所教授的课程以与课程所对应的班级会自动出现,教师可以选择对所教的课程以与对应的班级进行实验预约,也可以对自己已预约的实验信息进行查询,同样也可以进行密码修改。4. 学生模块学生模块相对简单,学生在系统中可以对自己班级的实验信息进行查询,也可以对密码进行修改。3.2 数据库设计3.2.1 数据库的引入数据库(Database),是按照数据结构来组织、存储和管理数据的仓库,是用于查询的大量数据的存储区域。使用数据库可以带来许多好处:如减少了数据的冗余度,从而大节省了数据的存储空间,实现数据资源的充分共享等等。此外,数据库技术还为用户提供了非常简便的使用手段,使用户易于编写有关数据库应用程序。特别是近年来推出的计算机关系数据库管理系统,操作直观,使用灵活,编程方便,功能强大,环境适应广泛,数据处理能力极强。数据库的设计是指对一个给定的应用环境,构造数据库模式,建立数据库与其应用系统,满足各种用户需求。作为信息资源开发、管理和服务的一种有效的手段,数据库技术的应用已越来越广泛,从小型的单项事务处理系统到大型的信息系统大都用先进的数据库技术来保持系统数据的安全性、完整性和共享性。对一个实际的系统来说,数据库表的设计在遵循数据库理论的同时,必须能用开发工具来实现用户在各方面提出的功能要求。我们现在可以使用的数据库有很多种,如:Fox数据库(.dbf)、Access数据库(.mdb)、DB2、Informix、Oracle和SQLServer等等,在本次设计中,选择了Access作为后台数据库工具,因为它的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。另外,Access 允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。因此,本系统选择Access 2003作为系统的数据库,对系统数据进行设计和管理。3.2.2 数据库的设计原则数据库的设计是实验室预约系统设计的核心技术容之一,是在特定的数据库模式下,建立数据库应用系统,使之能够有效地存储数据,满足用户的实际应用需求。一个好的数据结构和数据库应该充分体现数据计算发展变化的状况,同时又充分满足组织的各级管理要求,以与使得后续系统开发方便,快捷,系统开销(如占用空间,网络传输速度,磁盘或光盘读写次数)小,易于管理和维护等特点。根据系统需求,数据库设计须遵循以下原则进行设计:1.数据存储和功能上的可扩展性。为了满足用户的实际应用需求,在进行实体分析与数据建模时,需要合理定义所需实体与其属性,实现通用的数据存储与功能上的扩展。这是本系统数据库设计的关键也是核心。2.保证数据的一致性和完整性,合理减少数据冗余。数据库中存储了大量的表,每表存储大量数据,为了保证数据插入,删除,更新的一致性和完整性,需要在表之间创建各种关联,并设置表之间可以进行级联操作,同时减少了各表中数据的冗余。但由于表之间关联是一种强制性措施,建立后,对父表和子表的插入,删除,更新操作均要占用系统的开销。如果数据冗余低,数据的完整性容易得到保证,但增加了表之间连接查询的操作。为了提高系统的响应时间,合理的数据冗余也是必要的。3.合理设计数据规则和约束。使用规则和约束来防止系统操作人员误输入造成数据的错误是数据库设计时采用的种常用手段。但是,不必要的规则和约束也会占用系统的不必要开销。为了改善数据库性能,在设计时要更多考虑到使用约束,因为约束对数据的有效性验证比规则要快。3.2.3 数据库结构设计与实现实验室预约系统采用关系数据库存储和管理数据,在分析和设计系统的总体静态结构模型时需要进行数据分析和数据库设计。整个设计中分为两个步骤,即逻辑设计和物理设计。在逻辑设计中,确定了数据库所包含的表与其字段;在物理设计中,确定了表的具体结构,即设定字段的名称、类型与宽度,并确定索引,为建立表的关联准备条件。实验室预约系统中名为lab的数据库包括以下表:admin,classinformation,course,kind,teacher,time12,time34,time56,time78。下面将具体介绍数据库中各表的功能与结构。1. admin表:对应的是用户表,用来存储用户的信息,结构如表4-1所示。表 4-1 用户表字段名类型字段大小说明id自动编号长整型无account文本50用户名mima文本50用户密码type文本50用户权限类型2. classinformation表:对应的是实验室预约信息表,用于存储已预约的实验信息表,结构如表4-2所示。表 4-2 实验信息表字段名类型字段大小说明id自动编号长整型无classname文本50班级名testname文本50实验名appointtime文本50预约时间place文本50实验室teacher文本50实验老师3. course表:对应的是课程表,存储的是课程对应的授课老师,所学班级,以与其实验所属的实验类别,其结构如表4-3所示。表4-3 课程表字段名类型字段大小说明coursenumber数字长整型课程号coursename文本50课程名coursetecher文本50授课老师learnclass1文本50所学班级1learnclass2文本50所学班级2leibie文本50实验类别4. kind表:对应的是实验类别表,用于存储相应的实验类别可用的实验室,其结构设计如表4-4所示。表4-4 实验类别表字段名类型字段大小说明testkind文本50实验类别room1文本50实验室1room2文本50实验室25. teacher表:对应的是教师授课表,存储的是教师所教授的课程,其结构设计如表4-5所示。表4-5 教师授课表字段名类型字段大小说明id文本50教师id号teachername文本50教师course1文本50所教课程1course2文本50所教课程26. time12表:对应的是上午一二节表,存储的是所有的实验室所对应的一周之周一到周五的上午前两节的是否预约信息其结构设计如表4-6所示。表4-6 上午一二节表字段名类型字段大小说明testroom文本50实验室monday文本50周一预约情况tuesday文本50周二预约情况wednesday文本50周三预约情况thursday文本50周四预约情况friday文本50周五预约情况7. time34表:对应上午三四节表,存储的是所有的实验室所对应的一周之周一到周五的上午后两节的是否预约信息,结构设计如表4-7所示。表4-7 上午三四节表字段名类型字段大小说明testroom文本50实验室monday文本50周一预约情况tuesday文本50周二预约情况wednesday文本50周三预约情况thursday文本50周四预约情况friday文本50周五预约情况8. time56表:对应下午五六节表,存储的是所有的实验室所对应的一周之周一到周五的下午前两节的是否预约信息,结构设计如表4-8所示。表4-8 下午五六节表字段名类型字段大小说明testroom文本50实验室monday文本50周一预约情况tuesday文本50周二预约情况wednesday文本50周三预约情况thursday文本50周四预约情况friday文本50周五预约情况9. time78表:对应下午七八节表,存储的是所有的实验室所对应的一周之周一到周五的下午后两节的是否预约信息,结构设计如表4-9所示。表4-9 下午七八节表字段名类型字段大小说明testroom文本50实验室monday文本50周一预约情况tuesday文本50周二预约情况wednesday文本50周三预约情况thursday文本50周四预约情况friday文本50周五预约情况第4章 详细设计经过全面的需求分析,精心的概要设计后,现在来阐明各部分功能模块的具体实现,包括登陆模块,教师模块,学生模块,管理员模块。本章将主要讨论该系统所实现的各部分功能。4.1 模板页的设计现在众多的中,模板已经成为必不可少的网页助手。有了模板,可以减少很多不必要的代码,而且模板有助于保证整个外观和风格的一致性。为了减少在网页设计时出现的变一页则动全的问题,ASP.NET3.5新增了母版页的概念,可以把它想象为“网页模板”。然而与“网页模板”不同的是,开发者再也不必去更新每一个页面了,只需修改一页,所有的网页都会改变,这一页就是母版页。本系统因为有三个用户模块,所以设计了三个模版页,分别对应于不同的用户。因为系统中的三个模板页类似,只是菜单里的容不同,所以在此只介绍一个。模板页的创建是在建立新页面时建立的,在选择“新建项目”时,在出来的对话框中选择“模板页”即可生成后缀名为.master的模板页。模板页视图设计相对简单,只有一个Menu菜单控件和一个Image控件。设置Image控件的ImageUrl属性为图片的绝对路径。教师模板页设计如图4-1所示。图 4-1 教师模板页Menu控件中的MenuItem可以直接编写代码,但是Microsoft Visual Studio 2005提供了更为直观的菜单设计工具:在页面的设计视图中,右击Menu控件,然后选择“编辑菜单项”,就可以直接输入菜单的每个栏目,并且栏目之间的级别关系也可以直接通过单击移动控制按钮实现。在“菜单项编辑器”对话框中,对菜单中每个栏目的“NavigateUrl”属性进行设置,可以手动选择要到的页面,然后单击“确定”即可完成菜单控件的编辑。4.2 教师模块教师模块,用户可以进行实验的预约和查询,也可以进行密码修改。此模块的核心部分就是预约功能的实现,本系统的预约部分用类似课堂表的形式显现出来,界面直观。在此只介绍主要部分,预约和查询。4.2.1 预约界面预约功能的实现是系统的核心部分,相对来说比较复杂。此系统的预约部分为方便用户界面直观,但后台代码比较多。界面中用到了四个Datalist控件实现与数据库中的各个时间段的实验室表进行绑定,使用户直观地看到一周之实验室的预约情况;也用到了Dropdownlist控件绑定来显示用户的一些信息。当跳转此页面时,关于用户所教授的课程会自动出现在相应的下拉列表框中,当用户单击某一课程时,关于此课程对应的实验项目,实验室以与所学班级都会自动出现,以方便用户的操作和直观性。由于绑定比较多,后台代码就比较复杂。其运行界面如图4-2所示。图4-2 预约页面1. 要实现界面运行时自动出现相应的课程信息,则首先要在Page_Load事件中进行对所教课程的下拉列表框进行绑定。主要代码如下:Dim sql As String = "select * from teacherwhere teachername='" & Session("usename") & "'" Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("lab.mdb") Dim cmd As New OleDbCommand(sql, conn) conn.Open() Dim dr As OleDbDataReader = cmd.ExecuteReader() If dr.Read() Then ddlCourse.Items.Add(0) ddlCourse.Items(0).Text = dr.Item("course1") ddlCourse.Items.Add(1) ddlCourse.Items(1).Text = dr.Item("course2") End If conn.Close()首先利用Connection对象建立和数据库的连接,然后建立Command对象,打开数据库,利用Command对象的ExecuteReader方法建立DataReader对象,执行查询语句命令,利用登陆界面中保存的用户名在数据库中进行查询,然后用dr.read方法读取数据库中对应记录的信息,在下拉列表框中动态添加教师所教授的课程。程序中利用If.Else语句将查询到的记录的课程字段动态添加到下拉列表框中。在循环输出记录的时候,如果正确读出一条记录,则dr.Read()=Ttue,执行动态添加,如果没有读出记录,则不添加。2. 当用户点击课程下拉列表框中的课程时,课程对应的实验项目和所学班级以与实验室都要显现出来,这部分绑定代码都在所教课程下拉列表框的ddlCourse_SelectedIndexChanged事件中实现。首先利用Connection对象建立和数据库的连接,然后建立Command对象,执行查询语句命令"select * from course where coursename='" & str1 & "'",从数据库中的课程表course中查询课程名为所教课程下拉列表框中的选定项的记录。若查到则对实验项目下拉列表框进行动态添加实验项目。其代码和课程下拉列表框的绑定代码相似,只是在查询之前要把课程下拉列表框选择的课程用字符创变量str1记录下来,即“str1 = ddlCourse.SelectedItem.Text”以便查询时用到。3. 实验室下拉列表框的绑定。同样也是先连接数据库,用字符串变量str2将实验项目下拉列表框中选定的项保存,然后用"select * from kind where testkind='" & str2 & "'"查询语句从数据库类别表kind中查询实验类别为实验项目下拉列表框选定的项。查找到对实验室下拉列表框动态添加项目。4. 班级下拉列表框的绑定。与前面的绑定一样,和数据库建立连接,利用"select * from course where coursename='" & str1 & "'"从数据库课程表course中查询课程名为所教课程下拉列表框选定的课程,查找到后对班级下拉列表框进行动态添加项。最后关闭数据库。5. 查看实验室按钮的代码实现。strusername = DropDownList1.SelectedItem.TextDim strconn1 As String = "Provider=Microsoft.jet.oledb.4.0;data source=" & Server.MapPath("lab.mdb")Dim sql1 As String = "select * from time12 where testroom='" & strusername & "'"Dim conn1 As New OleDbConnection(strconn1) Dim cmd1 As New OleDbCommand(sql1, conn1)conn1.Open()Dim dr1 As OleDbDataReader = cmd1.ExecuteReader()DataList1.DataSource = dr1DataList1.DataBind()conn1.Close()DataList1.Visible = TrueDim dli As DataListItem = DataList1.Items(0)Dim OptionRadio1 As RadioButton = dli.FindControl("rblOption1")If OptionRadio1.Text = "是" ThenOptionRadio1.Enabled = "false"OptionRadio1.Checked = TrueEnd If当用户单击查看实验室时,就会出现类似课程表的预约表。因为要让一周之一个实验室的所有预约信息以课堂表的形式显现出来,所以要用到四个Datalist控件来显示,分别绑定数据库中上午一二节表time12,上午三四节表time34,下午一二节表time56,下去三四节表time78中对应实验室的一条记录。在每个Datalist控件中都定义了五个单选框,五个单选框分别与数据库中的预约时间表中的周一到周五的五个字段相绑定,每个单选框的是否被选择的状态表示此时间段实验室是否已预约。如果已预约,则此时间段对应的单选框为灰色不可用状态并且已经选中,显示“是”;如果没有预约,则单选框为可选状态,显示“否”。首先用字符串变量strusername保存DropDownList1.SelectedItem.Text(实验室下拉列表框选定的项),从数据库time12中查询实验室为实验室下拉列表框中选定的项的记录,并将Datalist1的数据源设为查询的结果,则实现了绑定。又要让已预约的单选框为不可用状态,