ASP.NET实验室预约系统的设计

摘  要

实验室预约系统的设计主要是基于B/S模型,在Windows系统下,运用ASP.NET平台和SQLServer2000数据库实现实验室预约功能。该设计主要实现了实验室的预约和管理功能。预约功能包括老师对实验室信息、实验项目和实验预约情况的查询以及对实验室的预约;学生对老师预约情况和实验项目预约情况的查询以及学生对实验的预约。管理功能包括教师、学生、管理员三者的登录、注册、个人资料管理,管理员对实验室的管理与对学生和教师预约信息的删除功能。最后通过调试、完善该系统,基本实现了高校实验室预约、管理功能,为各大学的实验室预约系统提供有用的模版参考。

关键词实验室预约;B/S;SQL Server2000数据库;VB.NET。

3.2  开发工具简介

3.2.1  .NET平台简介

.NET 是 Microsoft研发的,用于创建 XML Web 服务的平台,该平台将信息、设备和人以一种统一的、个性化的方式联系起来。借助于 .NET 平台,可以创建和使用基于 XML 的应用程序、进程和 Web 站点以及服务,它们之间可以按设计、在任何平台或智能设备上共享和组合信息与功能,以向单位和个人提供定制好的解决方案。.NET 是一个全面的产品家族,它建立在行业标准和 Internet 标准之上,提供开发(工具)、管理(服务器)、使用(构造块服务和智能客户端)以及 XML Web 服务体验(丰富的用户体验)。.NET 将成为您今天正在使用的 Microsoft 应用程序、工具和服务器的一部分,同时,新产品不断扩展 XML Web 的服务能力以满足您的所有业务需求。

3.2.2  SQL Serser2000简介

SQL Server 是一个关系数据库管理系统。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了。Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。SQL Server 2000, 是Microsoft 公司推出的SQL Server 数据库管理系统的新版本。该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能,具有使用方便、可伸缩性好、与相关软件集成程度高等优点。可跨越从运行Microsoft Windows 98 的膝上型电脑,到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。

5.1  登录页面设计

5.1.1  登录页面

该页面是一个简单的登录界面,如图2。

图2 登录界面

当用户来到开始页面,输入用户名和密码,并且要在底下选择相应的登录身份,教师、学生还是管理员,然后点击登录。就开始执行登录检测代码,当代码在数据库搜索到信息时,就返回消息,登录成功,进入相应的界面,如果未搜索到消息,也返回一个信息。该页面通过简单的查询比较语句实现学生、教师、管理员三者的登录功能。在页面的右边有一个注册链接。当用户(教师,学生)进入登录界面时,如果没有账号,要先注册账号。首先选择注册身份,点击“注册”按钮,进入相应的注册界面。实现登录主要代码是通过一个IF语句实现三者身份的判断。部分代码如下:

        Dim conn As New SqlConnection

        Dim cmd As New SqlCommand

        Dim objReader As System.Data.SqlClient.SqlDataReader

        conn.ConnectionString = "Data Source=localhost;Initial Catalog=Booking;Integrated Security=SSPI;Packet Size=4096;User ID=sa;Password=''"

        conn.Open()

        cmd.Connection = conn         

………………

以上代码段是打开数据库代码,在以下的程序中经常用到。

        Dim name As String = TextBox1.Text

        Dim pwd As String = TextBox2.Text

        If RadioButtonList1.Items(0).Selected = True Then

            cmd.CommandText = "Select * from Teacher_information"

            objReader = cmd.ExecuteReader()

            Do While objReader.Read()

                Dim sqlname As String = objReader.GetString(1).Trim()

                Dim sqlpwd As String = objReader.GetString(3).Trim()

                If sqlname = name And sqlpwd = pwd Then

                    Session("names") = TextBox1.Text

                    Session("pwds") = TextBox2.Text

                    Response.Redirect("admintea.aspx")

                    Exit Do

                End If

            Loop

            Response.Redirect("error.aspx")

………………

以上这段是查询数据库里的数据进行比较,并且用一个Session控件记录用户名和密码,上面的代码是实现教师登录的代码段。实现学生、教师、管理员三者登录的选择要用到一个IF语句。当判断正确后,转到相关的页面。

5.1.2  注册页面

教师的注册代码和学生的注册代码及页面都相类似,主要都是实现数据信息的插入到数据库表格里。不同之处在于学生的用户名是学生的学号,这是一个唯一标识,不需要再自己起名字,并且他有一定的长度限制6-12之间,在这个长度区间内的值才是有效的,要是想输入固定长度值,可以修改代码信息来完成。用户名、密码、真实姓名,都是学生和老师必填字段,而学生还有一个必填字段,就是系别班级,它是教师授课预约里的一个字段。由于老师可能有重名的时候,所以老师的用户名是自己起的。在填写老师用户名后,可以检查是否已经被人用过,如果没用过可以继续使用,填写其他信息,如果用户名已存在数据库里就会弹出个提示,要重新输入用户名。当填写好信息后,点击提交就可以注册账号了,如果不小心填错一些信息,可以点击“重填”按钮,重新填写资料。把注册信息数据插入到数据库表格里的代码如下:

If S_ID.Text.Length < 5 Or S_ID.Text.Length > 13 Or S_name.Text.Length < 1 Or S_pwd.Text.Length < 1 Or S_class.Text.Length < 1 Then

            Label1.Visible = True

        Else

            cmd.CommandText = "Insert into Student_information values(@S_ID,@S_name,@S_pwd,@S_mail,@S_phone,@S_class,@S_native)"

            cmd.Parameters.Add(New SqlParameter("@S_ID", SqlDbType.Char, 10))

            cmd.Parameters.Add(New SqlParameter("@S_name", SqlDbType.VarChar, 6))

            cmd.Parameters.Add(New SqlParameter("@S_pwd", SqlDbType.VarChar, 15))

            cmd.Parameters.Add(New SqlParameter("@S_mail", SqlDbType.VarChar, 15))

            cmd.Parameters.Add(New SqlParameter("@S_phone", SqlDbType.Char, 10))

            cmd.Parameters.Add(New SqlParameter("@S_class", SqlDbType.Char, 15))

            cmd.Parameters.Add(New SqlParameter("@S_native", SqlDbType.VarChar, 5))

            cmd.Parameters("@S_ID").Value = Request("S_ID")

            cmd.Parameters("@S_name").Value = Request("S_name")

            cmd.Parameters("@S_pwd").Value = Request("S_pwd")

            cmd.Parameters("@S_mail").Value = Request("S_mail")

            cmd.Parameters("@S_phone").Value = Request("S_phone")

            cmd.Parameters("@S_class").Value = Request("S_class")

            cmd.Parameters("@S_native").Value = Request("S_native")

            cmd.ExecuteNonQuery()

            conn.Close()

            Label2.Text = "你已经注册成功"

            fh.Visible = True

        End If

注册界面如图3。

图3  注册界面

5.2  管理页面设计

5.2.1  教师管理主页面

该页面如图4。

图4  老师主页面

页面最上面一排显示用户的用户类别、用户名。下面是老师能够操作的各种功能,主要是各种查询功能。老师有三种信息查询功能:一是实验室信息查询。该查询主要是查询实验室房间信息,有什么设备、可以做什么样的实验项目、能容纳多少人、可用设备的台数等信息,为老师预约房间提供参考;二是实验项目查询,该查询就是查找某个实验项目能在哪些实验室里做实验,即显示能做某个项目的房间个别信息;三是实验室预约查询,就是当老师查到某个实验室时,想了解该房间已经预约的具体情况的操作,该房间里哪些课节已经预约了,哪些课节空闲。三个功能的实现代码都类似,都是通过SQL 语句来查找数据库里的相关信息,然后把查到的信息通过绑定控件显示到页面上,供查询者了解信息。同时还有几个链接按钮,用来跳转到实验预约,修改资料,信息查询等相关页面。

实验室信息查询的代码如下:

cmd.CommandText = "Select * from Lab_information"

        objReader = cmd.ExecuteReader()

        Do While objReader.Read()

            Dim LabID As String = objReader.GetString(0).Trim()

            If LabID = TextBox1.Text Then

                name = LabID

                Exit Do

            End If

        Loop

        If TextBox1.Text = name Then

            bindlist1()

        Else

            Label2.Text = "此实验室尚未添加"

        End If

…………Datalist绑定代码如下:

Sub bindlist1()

        Dim conn As New SqlConnection

        Dim cmd As New SqlCommand

        Dim ds As New DataSet

        conn.ConnectionString = "Data Source=localhost;Initial Catalog=Booking;Integrated Security=SSPI;Packet Size=4096;User ID=sa;Password=''"

        conn.Open()

        cmd.Connection = conn

        Dim sqlstr As String = "select * from Lab_information where L_ID='" & Session("L_ID") + "'"

        cmd.CommandText = sqlstr

        Dim objadpt As New SqlDataAdapter(cmd)

        Dim tablename As String = "L_ID"

        objadpt.Fill(ds, tablename)

        Lab1.DataSource = ds.Tables(tablename)

        Lab1.DataBind()

        conn.Close()

End Sub

5.2.2  学生管理主页面

学生的这个界面主要是查询,是对老师和课程预约情况的查询。不过还有预约功能也在此页面实现,预约功能在后面5.3.1节介绍。学生管理页面如图5。

图5  学生主页面

最上面同样是学生的身份、学生的唯一标识。下面是查询功能选项卡,学生的查询主要有两个方面:一个是对实验项目的查询,它主要是查询某个实验项目的信息,主要包括有哪几位老师正在上这门实验课、都在什么实验室、什么时间上课这门课等等。二是老师查询,当知道了上某一门实验课的老师是哪一位时,就可以通过此项查询。由于现在大多数老师都不仅仅教授一门课程,所以有可能有多样的实验课,如老师既教数据库知识,又教操作系统,做实验时就既有操作系统实验课,又有数据库实验课,这时需要一个二级目录的查询,当先输入老师名字时,在后面就会用下拉表单列出老师实验课的信息,然后选择要查的实验课,电击“查询”按钮,才在底下显示具体信息,操作如图6。该操作的代码和老师的查询代码类似,只是在操作中有个下拉菜单的操作。由于要打开数据库,所以涉及数据库打开数据库代码如5.1.1节所叙述,此处不在重复。

图6  学生查询教师实验二级目录的实现

下拉菜单实现的代码如下:

Dim objReader As System.Data.SqlClient.SqlDataReader

        Session("True_name") = TextBox1.Text

     

        cmd.CommandText = "Select * from Tbooking_information"

        objReader = cmd.ExecuteReader()

        Do While objReader.Read()

            Dim sqlname As String = objReader.GetString(4).Trim()

            Dim sqlexper As String = objReader.GetString(3).Trim()

            If sqlname = TextBox1.Text Then

                exper.Items.Add("" & sqlexper + "")

            End If

        Loop

        TextBox2.Visible = False

            exper.Visible = True   

5.2.3  管理员管理主页面

管理员的这个页面主要有三个功能,一是添加房间信息,二是修改房间信息,三是删除学生和老师的预约信息。

(1)添加房间信息。在该页面,要输入实验室房间的详细信息,主要有房间号、实验室类别、总人数(总的计算机台数)、可用设备数(能够做实验的计算机台数)、都能够实现哪些项目的上机操作和备注,这一些必要的字段。此页面有三个按钮:一个是提交、一个是重填、一个是继续添加。提交就是把浏览器里输入的信息插入到数据库表格里,重填就是信息的清除,继续添加也是类似信息的清除。从操作过程知道此操作的代码段主要是信息的插入,所以在此不在列出此段代码。

(2)修改房间信息界面主要是实现对实验室的信息单项修改。要先填写房间号,系统根据这个填写的信息继续做后面的操作,可以修改实验室类别、总人数、可用设备数(上机人数)、实验项目、备注等各项。页面如图7。

图7  房间修改信息界面

(3)删除预约信息。页面如图8。

图8  管理员删除界面

此操作是按分类操作的,分四类:一个删除房间信息,它又分删除一个房间信息和删除多个房间信息,当填写房间号或房间号的区间时,就可以执行此操作。二是删除房间的预约信息,可以删除一个房间或多个房间的预约信息。三是删除老师的预约信息,当输入老师姓名时就删除老师的预约信息。四是删除学生的预约信息,删除学生预约信息通常是一个班或一个专业的,所以主要是使用区间,删除一段学号的学生预约信息。当点击删除时,如果成功就会在后面显示删除成功。否则,就提示输入错误字段。在页面下面是简单的介绍如何操作删除功能的。

此页面有个‘继续操作’按钮,当点击它时,就会清空上面的填入信息,同时还有个链接按钮,用来返回到管理员的主界面。删除功能很简单,就是先打开数据库,用一条delete语句,删除相应的数据库表格里的某一列字段或整个字段,就可以完成此操作。代码如下:

Dim conn As New SqlConnection

        Dim cmd As New SqlCommand

        Dim ds As New DataSet

        conn.ConnectionString = "Data Source=localhost;Initial Catalog=Booking;Integrated Security=SSPI;Packet Size=4096;User ID=sa;Password=''"

        conn.Open()

        cmd.Connection = conn

        cmd.CommandText = "delete  from Lab_information where L_ID >='" & TextBox8.Text + "'and L_ID<='" & Textbox9.Text + "'"

        Label3.Text = "删除成功"

        cmd.ExecuteNonQuery()

        conn.Close()

5.3  预约页面的实现

5.3.1  学生预约页面

这个在学生的管理主页面上,如图5学生主页面。主要是向数据库里学生预约表格里填加一些学生预约信息。在输入框里输入学生要预约的房间号,授课教师的真实姓名,学生的学号,实验项目,执行此操作的时间,点提交就可以实现学生的预约。下面有三个按钮,一个是重填,一个是预约,一个是取消预约,当点取消预约时,系统会根据当前用户输入的信息(用户名或学号等)执行预约信息删除操作。

5.3.2  教师预约页面

教师预约的页面是一个单独的页面,在此页面上方同样是用户类别和用户标识,下面输入框是要预约所填写的必要信息字段,有预约实验室的房间号、上课的星期、课节、实验项目名称、教师真实姓名、完成实验项目的上课周次、预约信息的时间、教师授课的班级。星期和课节字段是两个下拉框的表格,通过下拉框选择是星期几,第几节课。代码也是插入数据的代码,在此不在重复代码段。页面如图9。

图9  教师预约界面

5.4  其它页面的实现

5.4.1  个人资料管理页面

此功能是学生、教师、管理员三者都需要实现的。所以他们实现的方式相同,管理资料的页面也相同。如管理员的个人资料管理页面如图10。

图10  管理员资料管理界面

密码框里要填入旧的密码,新密码和对新密码的确认,才能修改信息。邮箱和电话是当用户登录后就显示出来的,你可以根据自己信息对它们进行相关的修改,点修改按钮,进行此操作,无论成功与否都有提示,实现代码如下:

If pwd1.Text = Session("pwds") Then

            If pwd2.Text = pwd3.Text Then

                cmd.CommandText = "UPDATE Teacher_information SET T_pwd='" & pwd2.Text + "' where T_name='" & Session("names") + "'"

                Label1.Text = "修改成功"

            Else

                Label1.Text = "密码不一致"

            End If

        Else

            Label1.Text = "旧密码不正确"

        End If

5.4.2  退出系统功能的实现

此操作就是删除在登录记录的Session值,学生、教师、管理员的退出系统功能都是如此实现。把Session的值设置为空,返回到开始界面即可。代码简单明了,如管理员的代码如下:

Session("namea") = ""

        Session("pwda") = ""

        Response.Redirect("homepage.aspx")

5.5  主页面格调代码实现

主页面的格调主要是用HTML代码实现。它主要包括实现主题背景的颜色、图片的插入、各种表格属性的设计和嵌套、字体的对齐方式等各方面内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/4886.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux--05---相对路径与绝对路径、终端的认识

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1. 相对路径与绝对路径切换到用户家目录&#xff1a;cd ~当前目录&#xff1a;./ 2. 对终端的认识3. 文件的类型颜色表示的文件类型&#xff1a;文件类型和权限的表…

基于深度学习的实时人脸检测与情绪分类

情绪分类 实时人脸检测与情绪分类 Kaggle Competion 数据集 fer2013 中的测试准确率为 66%CK数据集的检验准确率为99.87%情绪分类器模型预测从网络摄像头捕获的实时视频中的平均成本时间为 4~ 10ms 关键技术要点&#xff1a; 实时人脸检测&#xff1a;系统采用了前沿的人脸检…

明日周刊-第8期

现在露营的人越来越多了&#xff0c;都是带着帐篷或者遮阳篷聚在一起喝喝茶聊聊天&#xff0c;这是一种很好的放松方式。最近我养了一只金毛&#xff0c;目前两个月大&#xff0c;非常可爱。 文章目录 一周热点资源分享言论歌曲推荐 一周热点 一、人工智能领域 本周&#xff…

迈威通信首秀成都工博会,迸发品牌强势能

4月26日&#xff0c;在繁花似锦的成都&#xff0c;一场工业界的盛会刚刚落下帷幕。而在这场盛会的璀璨星辰中&#xff0c;迈威通信以其首秀之姿&#xff0c;迸发出耀眼的光芒&#xff0c;强势展现了品牌的实力与魅力。 此次展会&#xff0c;迈威通信以“工业互联赋能新数字化智…

C语言求 MD5 值

MD5值常被用于验证数据的完整性&#xff0c;嵌入式开发时经常用到。md5sum命令可以求MD5码&#xff0c;下面介绍如何用C语言实现MD5功能。 一、求字符串MD5值 1、md5sum命令 $ echo -n "12345678" | md5sum //获取"12345678"字符串的md5值 结果&…

react 学习笔记二:ref、状态、继承

基础知识 1、ref 创建变量时&#xff0c;需要运用到username React.createRef()&#xff0c;并将其绑定到对应的节点。在使用时需要获取当前的节点&#xff1b; 注意&#xff1a;vue直接使用里面的值&#xff0c;不需要再用this。 2、状态 组件描述某种显示情况的数据&#…

VCSA6.7重置root密码

VCSA6.7重置root密码 1、登录VCSA所运行的ESXI主机 2、打开VCSA虚拟机Web控制台&#xff0c;先拍摄一个快照&#xff0c;然后重启虚拟机&#xff0c;在如下界面按"e" 3、找到linux开头的段落&#xff0c;在末尾追加rw init/bin/bash; 4、输入完成后&#xff0c;按&…

LPDDR5和LPDDR5X区别

发布时间 LPDDR5和LPDDR5X的发布时间如下&#xff1a; LPDDR5的具体发布时间没有直接提及&#xff0c;但它在市场上的应用早于LPDDR5X。LPDDR5作为LPDDR4(X)的继任者&#xff0c;其规范发布和商用化大致发生在2019年至2020年间&#xff0c;具体技术细节和产品商用则依据各制造…

【ruoyi-vue】关于密码重置

文章目录 前言解决问题 前言 在qq群里经常看到问ruoyi的账号密码是多少&#xff1f;有源代码忘记了登录密码怎么办&#xff1f; 解决问题 在 ruoyi-admin 模块内 SysUserController找到新增用户或修改用户密码的相关接口在里面就可以找相关创建密码的方法ruoyi里的创建密码的…

MySQL从入门到高级 --- 3.DML基本操作

文章目录 第三章&#xff1a;3.基本操作 - DML3.1 数据插入3.2 数据修改3.3 数据删除3.4 练习 第三章&#xff1a; 3.基本操作 - DML DML&#xff1a;数据操作语言&#xff0c;用来对数据中表的数据记录进行更新 关键字&#xff1a; insert 插入 delete 删除 update 更新 …

OceanBase V4.3 发布—— 迈向实时分析 AP 的重要里程

OceanBase在2023年初&#xff0c;发布了4.x架构的第一个重要版本&#xff0c;V4.1。该版本采用了单机分布式一体化架构&#xff0c;并在该架构的基础上&#xff0c;将代表数据库可靠性的RTO降低至 8 秒以内&#xff0c;从而确保在意外故障发生后&#xff0c;系统能够在极短时间…

碳化硅片有哪些比较重要的参数?

知识星球&#xff08;星球名&#xff1a;芯片制造与封测社区&#xff09;里的学员问&#xff1a;请问碳化硅衬底片到客户端验证主要测试什么项目&#xff0c;比较重要的参数有哪些&#xff1f; Lattice Parameters&#xff1a;晶格参数。确保衬底的晶格常数与将要生长的外延层…

面对网络安全,做好风险评估对企业会带来哪些帮助

随着信息技术的飞速发展&#xff0c;网络安全问题日益凸显&#xff0c;成为企业不容忽视的重要议题。企业作为社会经济活动的主要参与者&#xff0c;其网络安全不仅关系到自身的生存与发展&#xff0c;更与国家的经济安全、社会稳定息息相关。因此&#xff0c;企业必须高度重视…

盲人手机导航:科技之光引领无障碍出行新纪元

在这个日新月异的数字时代&#xff0c;科技不仅改变了我们获取信息的方式&#xff0c;更在无声中拓宽了视障人士的生活半径。盲人手机导航这一创新技术&#xff0c;正逐步成为他们探索世界、实现独立出行的重要伙伴。 对于大多数人而言&#xff0c;日常出行或许只是一次…

数据赋能(70)——概念:数据赋能业务过程的绩效评价

数据赋能业务过程的绩效评价涉及多个方面&#xff0c;这些方面共同构成了对业务过程中数据利用效果的综合评估。 以下是主要的绩效评价方面&#xff1a; 数据质量与准确性&#xff1a;评价数据收集、清洗和预处理过程的效率和准确性&#xff0c;确保所使用的数据是高质量、可靠…

四信数字孪生水库解决方案,加快构建现代化水库运行管理矩阵

近年&#xff0c;水利部先后出台《关于加快构建现代化水库运行管理矩阵的指导意见》与《构建现代化水库运行管理矩阵先行先试工作方案》等文件&#xff0c;明确总体要求及试点水库、先行区域建设技术要求等&#xff0c;为全面推进现代化水库运行管理矩阵建设工作提供依据。 《2…

“科技让广告更精彩”四川迈瑞斯文化传媒有限公司 行业领先的一站式媒体采购供应平台

国际数字影像产业园与园区企业一同推动数字影像技术的创新与发展&#xff0c;为数字影像产业注入新的活力。其中&#xff0c;四川迈瑞斯文化传媒有限公司&#xff08;906&#xff09;作为数字媒体行业的优秀企业&#xff0c;坚持“科技让广告更精彩”的理念&#xff0c;致力于为…

不完全微分PD控制器(CODESYS源代码+算法详细介绍)

完全微分计算公式为Kp*Td/Ts(e(k)-e(k-1))。有关位置式PID和增量式PID更多相关内容,大家可以参考下面的文章链接: 1、CODESYS位置式PID CODESYS位置式PID(完整ST源代码)_codesys pid功能块-CSDN博客文章浏览阅读1.1k次,点赞2次,收藏2次。CODESYS增量式PID完整源代码请参看…

最新 COCO数据集的下载、使用方法demo最新详细教程

&#x1f4f8; 最新 COCO数据集的下载、使用方法demo最新详细教程 &#x1f310; 文章目录 &#x1f4f8; 最新 COCO数据集的下载、使用方法demo最新详细教程 &#x1f310;摘要引言正文&#x1f4d8; COCO数据集概览&#x1f680; 下载和设置COCO数据集环境准备下载数据集 &am…

C++之入门

文章目录 1、前言2、C的关键字2.1C语言32关键字2.2C关键字(63个) 3、命名空间4、输入输出(cout、cin)4、缺省参数5、函数重载6 引用6.1 引用的定义6.2 引用的特性6.3引用的使用场景6.4 实际例子6.5、总结 7、内联函数8、auto关键字9、nullptr关键字 1、前言 C语言是结构化和模…