当前位置:   article > 正文

ASP.NET 网上考试系统的设计与实现(论文+源码)_Nueve_asp.net 三层架构在线考试系统

asp.net 三层架构在线考试系统

摘 要

放飞理想的网上考试系统采用开放式的设计思想,可以承载各种课程的题库,计算机自动组卷,实施课程的考试;也可以通过网络传输一套或几套试卷,在保证试卷的安全保密性的前提下,实施课程的考试,解决课程考试中规模小、笔试考试管理环节多、工作量大等问题。

在网络技术逐渐渗入社会生活各个层面的今天,传统的考试方式也面临着变革,而网络考试则是一个很重要的方向。基于网络的考试系统是传统考场的延伸,加上数据库技术的利用,大大简化了传统考试的过程。因此网络考试系统是电子化教学不可缺少的一个重要环节。所以现在较好的考试方法为网络考试,考生通过用户名、口令进行登录,试卷可以根据题库中的内容即时生成,可避免考试前的压题;而且可以采用大量标准化试题,从而使用计算机判卷,大大提高阅卷效率;还可以直接把成绩送到数据库中,进行统计、排序等操作。因此,采用网络考试方式将是以后考试发展的趋势。

网络考试系统的实现技术有多种,我们开发制作的网络考试系统是采用典型的客户机/服务器型的MIS型架构,系统按照功能的分类划分为相对独立但又相关的四大部分,其开发主要包括考生信息和试题的数据库建立和维护、客户机考试应用程序的开发、服务器考试管理系统应用程序的开发以及考试备份系统应用程序的开发。

本考试系统以WindowsXP操作系统、Microsoft Office Access为数据库平台。Microsoft Visual Basic 6.0是非常流行的基于Basic语言的可视化编程工具,Access是微软公司面向小型用户的桌面关系数据库管理系统。

首先建立考试系统应用程序框架,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成满意的可行系统。在开发过程中遵循了软件工程原理,经历了需求分析、概要设计、详细设计、测试与配置几个阶段,直至后期的系统维护,从而保证了软件的质量。

ASP是面向对象的开发工具,具有很多的控件,可以方便地进行界面设计和数据库连接等各种操作,所以我们选用ASP作为本次开发的语言。

关键词:考试系统、数据库、ASP、表、Access等。

第1章 前言

1.1 设计的目的:

以前,学校的各种考试大都采用传统的考试方式,每次考试至少要经过五个步骤,即人工出卷、考生考试、人工阅卷、成绩评估和试卷分析。但在网络技术逐渐渗入社会生活各个层面的今天,传统的考试方式也面临着变革,而网络考试则是一个很重要的方向。随着计算机网络应用的迅猛发展,网络已经接入千家万户,特别是现在很多的高校和社会性的教育已经建立了多媒体计算机网络教室,基于Web技术的网络考试系统可以借助于遍布全球的Internet进行,考试既可以在本地进行,也可以在异地进行,大大拓展了考试的灵活性,从而利用现有的设备和技术等进行在线考试,不仅可以减轻教师和考生负担,提高效率,同时也提高了考试的质量,从而使考试更趋于公证、客观,更能激发学生的学习兴趣。试卷可以根据题库中的内容即时生成,可避免考试前的压题;而且可以采用大量标准化试题,从而使用计算机阅卷,大大提高阅卷效率;还可以直接把成绩送到数据库中,进行统计、排序等操作。所以现在较好的考试方法为网络考试,试题内容放在服务器上,考生通过用户名、和口令进行登录,考试答案也存放在服务器中,这样考试的公平性、答案的安全性可以得到有效的保证。因此,采用网络考试方式将是以后考试发展的趋势。本系统分为两个部分,一是前台的网上考试模块,二是后台网上考试管理模块。

我是山西工商职业学院计算机网络技术专业的一名学生,由于专业性所以学习了许多的计算机知识,其中就包括计算机语言的学习,比如:ASP、VB、C语言等,还有和开发网站必不可少的数据库Access等。因为有了这些知识,所以我开发了网上考试系统。

1.2  设计意义:

可以方便广大考生及时、有利的进行不同地点的考试,同时也减轻了老师的负担,也提高考试的真正的目的,使之公平、合理的进行,让每个考生都能有一个良好的心态来对待所考的课程。

第2章 编程环境基础知识

2.1   HTML

HTML(HyperTextMarkupLanguage)超文本标记语言,是用来描述超文本文档的标记语言。现在多用于编写Internet主页。

HTML组织的文件是带有嵌入代码(由标记表示)的ASCII文本,它用来表示格式化和超文本链接。HTML文件的内容通过一个页面展示出来,不同页面通过超链接关联起来。

2.1.1 DreamweaverMX的概述

    DreamweaverMX是Macromedia公司最新推出的网爷制作“三剑客”(DreamweaverMX、FlashMX、FireworksMX)之一,是设计并且管理网络站点和网页的专业的HTML编辑器。

DreamweaverMX是一个所见即所得的网页编辑器,集功能强劲的可视化设计、应用开发环境以及代码编辑一身的工具,支持最新的DHTML和CSS标准。它采用了多种先进技术,能够快速高效地创建极具表现力和动感效果的网页,使网页创作过程变得十分简单。它用于对Web站点、Web应用程序进行设计、编码和开发,使开发人员和网页设计师能够快捷地创建代码规范的应用程序,开发环境精简而高效。开发人员能够运用它与他们的服务器技术构建功能强大的网络应用程序衔接到用户的数据、网络服务体系上。

DreamweaverMX提供基于强大的规范管理来确保高质量的设计,设计环境提供CSS能迅速高效地开发代码简洁、专业规范的站点。通过手工编码和使用可视化对象和行为来快速生成动态的、数据库驱动的WEB应用程序。

DreamweaverMX用于ColdFusion、ASP、ASP.NET、JSP和PHP的服务器代码库能够使用所有前沿的服务器端技术,以可视方式创建动态WEB站点,使用一种开发工具即可与多种站点和后端技术集成。

DreamweaverMX包含并扩展了Macromedia UltraDev中的所有功能,以帮助使用ASP、ASP.NET、ColdFusion标记语言(CFML)、JSP和PHP等服务器语言来生成由动态数据库支持的WEB应用程序。

DreamweaverMX也是开放式和可扩展的,赋予使用者最大的自由度和灵活性来选择今天或将来最适合自己工作的技术。

2.1.2 ASP的概述

在ASP页面中添加服务器端脚本,服务器器端脚本是一系列指令,用于向Web服务器连续发出命令。若要在ASP页面中插入服务器端脚本,首先要设置所使用的脚本语言,有以下三种设置方法。

1.使用@ LANGUAGE指令<%@ LANGUAGE = ScriptingLanguage %>
  其中ScriptingLanguage参数是一个字符串,指定用于解释脚本命令的脚本引擎,取值可以是“VBScript”或“JavaScript”,默认值为VBScript。

2.使用<SCRIPT>标记的相关属性

若要在文档中包含服务器端脚本,也可以使用SCRIPT标记的LANGUAGE属性来设置所用的脚本语言,并使用RUNAT属性指明脚本是在服务器端运行的。例如:
<SCRIPT LANGUAGE = "VBScript" RUNAT = "Server">
      …
</SCRIPT>. 使用Internet信息服务管理单元

3.在Windows 2000中,可以使用Internet信息服务管理单元来为安装在Web服务器上的所有ASP动态网页设置默认的脚本语言。操作步骤如下:
(1) 选择“开始→程序→管理工具→Internet服务管理器”命令。
(2) 在Internet信息服务管理单元窗口中,选择Web站点或应用程序的 起始点目录。
(3) 从“操作”菜单中选择“属性”命令,以打开目录的“ASP属性”对话框。
(4) 单击“主目录”、“虚拟目录”或“目录”选项卡。
(5) 单击“配置”按钮,单击“应用程序选项”选项卡,然后在“默认ASP语言” 框中输入要用的主要脚本语言。

2.2    VBScript

脚本(Script)就是插入在HTML文件中的短程序,通常有两个脚本语言:JavaScript和VBScript(Microsoft Visual Basic Scripting Edition)。JavaScript基于SUN公司的JAVA,而VBScript是基于Microsoft公司的Visual Basic,是以Visual Basic语言为基础提供编程功能,是Visual Basic语言的一个子集,是IIS的缺省源程序语言。

VBScript可以在HTML网页上操作、控制、处理对象。在最初的设计中,VBScript是通过编写事件驱动的脚本来扩大客户端HTML功能,编写客户端脚本最大的优点就是由浏览器解析执行,不需要增大服务器的负担。例如,我们可以在客户端进行输入数据有效性验证,防止浏览器将无效数据发送给服务器,这样,一方面可以减轻服务器的负担,防止服务器陷入处理大量无意义数据的工作中,同样,也可以减轻网络的阻塞;另一方面,也能够使客户减少等待时间,在验证的时候,浏览器能够立即作出响应,而如果在服务器上进行验证,那用户则不得不在浏览器前等待,服务器的处理和网络的传输都需要耗费一定的时间。

随着ASP技术的出现,VBScript将它的功能扩展到服务器上,VBScript开发的脚本可以在服务器上解析执行。在服务器端脚本开发的过程中,使用VBScript则没有客户端脚本开发时的局限性,当客户请求页面时,页面将在服务器上执行,然后再反馈给浏览器,浏览器所获得的只是标准的HTML文件,这样就可以不受浏览器功能的限制。

VBScript和HTML 页面完美地结合在一起,运用VBScript可以控制HTML页面,并对页面中某些事件作出响应,例如,前面所述的可以在页面的表单提交时进行数据有效性验证。VBScript 还提供了许多对象,运用这些对象,可以方便地进行脚本的编写,实现一些其他语言所无法实现的功能。

2.2.1  VBScript代码的基本格式

一般的ASP程序都是将VBScript代码放在服务器端执行的,此时有两种方法:

方法一:<%VBScript 代码%>

方法二:<Script language=” VBScript” Runat=”Server”>

          VBScript 代码

</Script >

有时为了需要,可能也会将VBScript代码放在客户端执行,此时的语法如下:

<Script language=” VBScript” >

          VBScript 代码

</Script >

这样用和ASP就没有什么关系了。

2.2.2  VBScript数据类型

在VB、C++等高级语言中,有整数、字符、浮点数等不同的数据类型,但在Script 中只有一中数据类型,称为Variant,也叫做变体类型。Variant是一种特殊数据类型,根据不同的使用方式,它可以包含不同的数据类别信息,如字符串、整数、日期等。这些不同的数据类别称为数据子类型,如2-2-1表所示:

子类型

说明

String

其值是变长字符串类型,最大长度可为20亿个字符

Byte

其值是0到255之间的无符号整数

Integer

其值是-32768到32768之间的带符号的整数

Long

取值范围是-2147483648到2147483647之间的长整型整数

Single

其值是单精度浮点数,负数范围从-3.402823E308到-1.401298E-324,正数范围从1.401298E-45到30402823E38

Double

其值是双精度浮点数,负数范围从-1.79769313486232E308到-4.94065645841247E-324,正数范围从4.94065645841247E-32到1.79769313486232E308

Date

其值是代表某个日期和时间的数字,日期范围从公元100年1月1日到公元9999年12月31日

Boolean

其值是TRUE 和FLASE的布尔型

Currency

其值范围是-922337203685477.5808到922337203685477.5807

Empty

变量未初始化时,如果代码中将其作为数字,其值就是0;如果代码中将其作为字符串,其值就是一个零长度字符串(“”)

Null

不包含任何有效数据的变量

Object

包含一个对象

一般情况下,Variant会将其代表的数据子类型作自动转化,但有时,也会遇到一些数据类型不匹配造成的错误,这时可以使用VBScript的转换函数来强制转换数据的子类型。

2.2.3  VBScript常量

常量就是拥有固定的数值,它可以代表字符串、数字和日期等的常数,常量一经声明,其值将不能再更改。声明常量的意义就在于可以在程序的任何部分使用该常量来代表特定的数值,从而方便了编程。

声明常量可以使用Const语句,例如:

<%

Const PI=3.1415926                   ‘表示数值型常量

Const ConstString1=“中华万岁”      ‘用“”表示字符串型常数

Const ConstDate=#2007-05-01#          ‘用##表示日期常数或时间常数

%>

 一旦声明过PI这个常量后,在程序的其他地方就可以用PI来表示3.1415926了,比如:

<%

Const PI=3.1415926                   

S=PI*R∧2                  ‘计算半径为R的圆的面积

%>

常量的命名规则和一般的程序设计语言一样,可以使用字母、数字、下划线等字符,但第一个字母必须是英文字母,中间不能有标点符号和运算符号,长度不能超过255个字符。

2.2.4  VBScript变量

所谓变量,从专业的角度说,就是存储在内存中用来包含数据的地址的名字。它与常量的最大区别就是,常量一经声明(定义)其值就不能改变了,而变量在声明后仍可随时对其值进行修改。

   声明变,量可以使用Dim语句,例如:

        <%

        Dim a      ‘声明一个变量

        Dim b,c,d   ‘用同一个Dim语句可以声明多个变量,用逗号隔开即可。

%>

在VBScript中,使用变量之前也可以不预先声名它,赋值后将自动声明。这样看来方便,其实带来麻烦了,如果不小心输错了,就会出现一个新的变量,当然会引起程序错误了,这种错误还很难查找。所以建议大家在今后的编程使用变量时,要养成先声明后使用的习惯。

如果希望强行要求所用的变量都预先声明,则可以在ASP文件中所用的ASP语句之前添加Option Explicit语句,这条语句的意思就是要求所有的变量必须先声明才能使用。例如:

      <%

      Option Explicit

      Dim  a,b,c                     ‘声明3个变量

      a=2

%>

变量的命名规则和作用域同常量。

2.3   ASP内置对象

ASP 内含于PWS和 IIS 之中 , 我们通过 ASP可以结合 HTML 网页、 ASP 指令和 ActiveX 组件建立动态、交互高效的 Web服务器应用程序。有了 ASP 就不必担心客户端浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通 HTML 中的脚本程序,当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样就减轻了客户端浏览器的负担。

与一般程序不同,ASP程序无须编译,  程序控制部分使用 VBScript 、JavaScript 等脚本语言来设计的,当执行 ASP 程序时,脚本程序将一整套命令发送给脚本解释器 ( 即脚本引擎 ) ,由脚本解释器进行翻译并将其转换成服务器所能执行的命令。当然,同其他编程语言一样, ASP 程序的编写也遵循一定的规则,如果你想使用你所喜爱的脚本语言编写 ASP 程序,那么你的服务器上必须要有能解释这种脚本语言的脚本解释器。当你安装 ASP 时,系统提供了两种脚本语言: VBSrcipt 和 JavaScript ,而 VBscript 则被作为系统默认的脚本语言。

ASP之所以简单实用,主要是因为它提供了功能强大的内部对象和内部组件。其中常用的五大内部对象包括Request、Response、Session、Application、Server,  

2.3.1   Request

    Request对象用于接收客户端在请求一个页面或传送一个表单时提供的所有信息,包括能够标识浏览器和用户的HTTP变量、Cookie信息以及附在URL后面的值(查询字符串或表单数据)

Request的功能是:从客户端获得数据信息。

Request对象共有五种获取方法,分别是QueryString、 Form、 Cookies、 ServerVariables 、ClientCertificate。

语法:

   Request[.数据集合∣属性∣.方法] (变量或字符串)

例如:

   <%

    Request.Form(“user_name”)

    Request.QueryString(“user_name”)

%>

下面先将Request的数据集合(获取方法)、属性、方法的功能分别列于表2-3-1、表2-3-2、表2-3-3中,然后将对常用的功能进行逐一介绍。

表2-3-1   Request对象的获取方法

获取方法

功能

QueryString

从查询字符串中读取用户提交的数据

Form

取得客户端在FORM表单中所输入的信息

Cookies

取得客户端浏览器的Cookies的信息

ServerVariables

取得服务器端环境变量信息

ClientCertificate

取得客户端浏览器的身份验证信息

表2-3-2   Request对象的属性

属性

功能

TotalBytes

取得客户端响应数据的字节大小

表2-3-3  Request对象的方法

方法

功能

BinaryRead

以二进制码方式读取客户端POST数据

  2.3.2   Response 

ASP的内部对象Response用来控制送出给客户端的信息,Response对象可以使用的方法如表2-3-4所示,属性如表2-3-5所示。

表2-3-4   Response对象的方法

方法

说明

Write

Response对象中最常用的方法,用来送出信息给客户端

Redirect

引导客户端浏览器至新的Web页面,前面已经做过详细介绍

BinaryWrite

输出二进制信息

Clear

清除在缓冲区的所有HTML页面

语法: Response.Clear 

此时,Response对象的 Buffer属性必须被设置为 True,否则会报错

End

终止处理ASP程序,并返回当时的状况

语法:Response.End

Flush

立刻送出缓冲区的HTML数据

语法:Response.Flush

此时,Response对象的 Buffer属性必须被设置为 True,否则会报错

表2-3-5  Response对象的属性

属性

说明

Buffer

设置为缓冲信息。取值为True或False,默认为False

ContentType

控制送出的文件类型

  2.3.3   Session

在上网时,利用超链接,可以很方便地从一个页面到另一个页面。但是这样也带来一个问题,怎样记载客户的信息呢?比如,在首页客户输入了自己的用户名和密码,在其他页面还需要使用该用户名,我们已经学习了两种方法。

方法一:利用Request对象的QueryString方法一页一页传递过去。这种方法太麻烦了。

方法二:利用  Cookies保存用户名。

还有一种简洁的方法,就是利用Session对象。

Session对象用来记载特定客户的信息。即使该客户从一个页面跳转到另一个页面,该Session信息仍然存在,客户在该网站的任何一个页面都可以存取Session信息。特别强调的是:Session信息是对一个客户的,不同客户的信息用不同的Session对象记载。

Session对象的属性:

  1. CodePage:将用于符号映射的代码页,决定将被用以显示动态内容     的代码页

  1. LCID:返回现场标识,决定显示动态内容的位置标识

(3).  SessionID:返回用户的会话标识。在创建会话时,服务器会为每一个会话生成一个单独的

(4).  Timeout:应用程序会话状态的超时时限,以分钟为单位, Session的有效期时长  

(5).  Contents:包含已用脚本命令添加到会话中的项目,Contents是Session对象的默认集合

StaticObjects:包含通过<OBJECT>标记创建的并给定了会话作用域的对象,这些对象在global.asa文件中创建

     Session对象的方法:

     (1).Abandon:破坏Session对象并释放其资源

(2).Contents.Remove:从Contents集合中删除一个项目

(3).Contents.RemoveAll:从Contents集合中删除所有项目

     事件有两个,必须和Global.asa结合使用

(1) Session_OnStart–––一个Session对象开始前,便调用该程序;

(2) Session_OnEnd –––一个Session对象结束后,便调用该程序。

  2.3.4   Application

Session对象可以记载特定客户的信息,与此相反的是,Application对象可以记载所有客户信息。不同的客户必须访问不同的Session对象,但可以访问公共的Application对象。(在Web站点中创建一个基于ASP的应用程序之后,便可以通过Application对象在该应用程序的所有用户之间共享信息)

Application对象是让所有客户一起使用的对象,通过该对象,所有客户都可以存取同一个Application对象。

Application对象的方法:

(1)Lock–––锁定Application对象, 禁止其他客户修改Application对象的属性;

(2)Unlock–––解除锁定, 允许其他客户修改Application对象的属性;

(3) Contents.Remove–––Application对象的Contents集合中删除一个项目;

(4) Contents.RemoveAll –––Application对象的Contents集合中删除所有项目;

(5) Contents –––含所有通过脚本命令添加到应用程序中的项目

(6) StaticObjects  ––– 含通过OBJECT标记创建的并给定了应用程序作用域的对象

Application的事件有两个,也必须和Global.asa结合使用:

(1)Application_OnStart–––该Application开始前,便调用该程序; Application_OnStart事件在创建第一个新的会话之前发生,也就是在Session_OnStart事件之前发生。语法格式如下:
<SCRIPT LANGUAGE = "VBScript" RUNAT = "Server">
       Sub Application_OnStart
……
       End Sub
</SCRIPT>
   在Application_OnStart事件过程脚本中,只有Application对象和Server对象是可用的。如果在该事件过程脚本中引用Session、Request或Response对象,都将会出现错误。
  例:
Sub Application_OnStart
      Application("NumberofVisitors") = 0
End Sub
  说明:在Application_OnStart事件过程脚本中并不需要使用Application.Lock和Application.Unlock方法,因为该事件仅仅在第一个会话启动应用程序时发生一次。

(2)Application_OnEnd–––该Application结束后,便调用该程序。

Application_OnEnd事件当应用程序退出时发生,该事件发生在Session_OnEnd事件之后。语法格式如下:
<SCRIPT LANGUAGE = "VBScript" RUNAT = "Server">
         Sub Application_OnEnd……
         End Sub
</SCRIPT>
  注意: 在Application_OnEnd事件过程脚本中只有ASP内置的Application和Server对象是可用的,而且不能调用Server.MapPath方法。

  2.3.5   Server  

Server对象是专为处理服务器上的特定任务而设计的,特别是与服务器的环境和处理活动有关的任务。它提供了一些非常有用的属性和方法,主要用来创建COM对象和Scripting式、管理其他网页的执行.

语法为:

   Server.方法︱属性(变量或字符串︱=整数)

Server对象的属性如表2-3-5所示。

属性

说明

ScriptTimeout

规定脚本文件最长执行时间,超过时间就停止执行脚本,其默认值为90秒

Server对象的方法如表2-3-6所示。

方法

说明

CreatObject

Server对象中最重要的方法,用于创建已注册到服务器的ActiveX组件、应用程序或脚本对象

HTMLEncode

将字符串转换成HTML格式输出

URLEncode

将字符串转换成URL编码输出

MapPath

将路径转化为物理路径

Execute

停止执行当前网页,转到新的网页执行,执行完毕后返回原网页,继续执行Execute方法后面的语句

Transfer

停止执行当前网页,转到新的网页执行。和Execute不同的是,执行完毕后不返回原网页,而是停止执行过程

2.4   ADO组件

 ASP用Database Access(数据库访问)组件与数据库进行连接,Database Access(数据库访问)组件通过ActiveX Data Objects(ADO)访问存储在数据库或其他表格化数据结构中的信息。

ADO是ActiveX Data Object的缩写,称为ActiveX数据对象,是为OLE DB设计的应用编程接口,使用ADO对象实现在ASP页面中对数据库的访问。在ASP页面中,OLE DB及ODBC无法直接使用,但是ADO却是一种可以在ASP中使用的标准对象,通过ADO就可以调用OLE DB提供者或者ODBC驱动程序来访问数据库。

ADO的主要对象有3个。分别为Connection、Command和Recordset,3个对象的主要功能如下表2-4-1所示:

表2-4-1  ADO对象及主要功能

对象

说明

Connection

用来建立与数据库的连接

Command

用来对数据库执行命令,如查询、填加、删除、修改记录等命令

Recordset

用来得到从数据库返回的记录集

2.4.1   Connection

Connection对象又称连接对象,主要用来建立与数据库的连接。只有建立连接后,才能利用Command和Recordset对象来对数据库进行各种操作。

使用 Connection对象之前,首先要建立该对象。在ADO中建立对象一般需要利用Server对象的CreatObject方法。语法如下:

   Set Connection 对象=Server. CreatObject(“ADODB. Connection”)

  建立对象后,就可以利用Connection对的Open方法来打开数据库并与之建立连接。

  语法如下:

   Connection  对象.Open “参数1=参数1的值;参数2=参数2的值;…”

  其中参数的意义如表2-4-2所示

表2-4-2  Connection对象的Open方法的参数

参数

说明

Dsn

ODBC数据源的名称

User

数据库登录帐号

Password

数据库登录密码

Driver

数据库的类型(驱动程序)

Dbq

数据库的物理路径

Provider

数据提供者

Connection对象属性:

(1) CursorLocation属性

设置使用的指针类型,由Connection对象产生的RecordSet对象会自动继承这个属性。它的取值有两个,

adUseServer:2 使用服务器端的指针,默认设置。若设置为该值,则Recordset对象将不能使用Sort属性进行排序;

adUseClient:3 使用客户端的指针。若设置为该值,则Recordset对象将能使用Sort属性进行排序。

(2) CommandTimeout属性

设置Connection对象命令执行所等待的时间,默认30秒。如果将该属性设置为0,ADO将无限等待直到命令执行完毕。

(3) ConnectionString属性

在使用Connection对象的Open方法打开数据源时,设置连接参数的字符串,可读写。字符串中包含以下内容:

(4) ConnectionTimeout属性

创建连接时所等待的最长时间,默认15秒,可读写。当设置为0时,表示一直等到连接成功。

(5)DefaultDatabase属性

当前连接的数据库的缺省名称,可读写。

(6)Mode属性

指定了打开数据源时,读、写和共享权限。

2.4.2   Command

Command对象又称命令对象,是对数据库执行命令的对象,它可以执行对数据库查询、添加、删除、修改记录操作。

Command对象是介于Connection对象和Recordset对象之间的一个对象,它主要通过SQL指令,对数据库提出操作请求,把得到的结果返给Recordset对象。Command对象依赖Connection对象,因为Command对象必须经过一个已经建立的Connection对象才能发出SQL指令。

建立Command对象,语法如下:

Set Command 对象=Server. CreatObject(“ADODB. Command”)

1.Command对象的属性

(1)ActiveConnection

设置数据库连接信息,可以是Connection对象名、数据源名或数据库连接字符串。语法为:

cmd.ActiveConnection=数据库连接信息

(2)CommandText

该属性用于设置或返回对数据库执行的操作(查询、添加、删除、修改记录等各种数据库操作)的可执行文本,可以是各种SQL语句,还可以是表名、查询名或存储过程名。如果是表名,表示要查询整张表的内容。

语法为:

cmd.CommandText=SQL语句、表名、查询名或存储过程名

(3)CommandType

该属性就用于设置或返回Command对象的CommandText属性可执行文本的的命令类型。语法如下:

Command对象.Command=类型值

类型值

相应数值

说明

adCmdText

1

说明CommandText属性的命令类型为文本定义的SQL语句。

adCmdTable

2

说明CommandText属性的命令类型为数据表名。

adCmdStoreProc

4

说明CommandText属性的命令类型为查询名或存储过程名。

adCmdUnknown

8

默认,说明CommandText属性的命令类型未知。 。

adExecuteNoRecords

128

不返回行的命令或存储过程(例如插入数据的命令)

adCommandFile

256

说明CommandText属性的命令类型为持久Recordset文件名。

adCmdTableDirect

512

不返回行的命令或存储过程(例如插入数据的命令)

(4)CommandTimout

该属性指定Command对象的Execute方法的执行的最长时间。默认为30秒,若设定为0,则表示永久等待,直至执行。如果服务器运行过慢,可以修改该属性,一般可以不修改,单位为秒。

语法为:

<% cmd.CommandTimeout=n %>

2.Command对象的方法

(1) Execute

执行在CommandText属性中定义好的查询、SQL语句或存储过程。语法:

对一个返回行的命令:

set recordset = command.Execute (RecordsAffected,Parameters,Options)

对一个不返回行的命令:

command.Execute RecordsAffected, Parameters, Options

返回值:返回一个Recordset对象指针。

参数:

RecordsAffected可选,Long值,返回该操作影响的记录数。

Parameters可选,Variant数组,包含被SQL语句传递的参数值。在这个参数中传递,输出参数不会返回正确值。

可选,Long值,指定Command对象的CommandText属性。

(2)  CreateParameter

该方法用指定的属性创建一个新的Parameter对象。

语法:

Set parameter=command.CreateParameter (Name, Type, Direction, Size, Value)

参数:

Name可选,代表Parameter对象的名字的字符串。

Type 可选,Long值,确定Parameter对象的数据类型。

Direction可选,Long值,确定Parameter对象的类型。

Size可选,Long值,确定参数值的最大长度,单位为字符或字节。 

Value可选,Variant值,指示Parameter对象的值。

  2.4.3   Recordset

Recordset对象又称记录集对象,是最主要的对象。当用Command对象或Connection对象执行查询命令后,就会得到一个记录集对象,该记录集包含满足条件的所有记录。

Recordset对象表示的是来自基本表或命令执行结果的记录全集。使用Recordset对象可以操作来自提供程序的数据,通过该对象几乎可以对所有数据进行操作。

所有Recordset对象均使用记录(行)和字段(列)进行构造。在任何情况下,该对象所指的当前记录均为集合内的单个记录。如果记录集非空,打开记录集后,记录指针将指向第一条记录。记录集有两个特殊的位置,Bof和Eof,Bof表示记录集的开头,位于第一条记录之前,Eof表示记录集的结尾,位于最后一条记录之后。可以通过移动记录指针(比如rs.MoveNext,下一条)在记录集的各条记录中漫游,就可以利用ASP语句显示该记录的内容。

建立Recordset对象,主要是利用Connection对象或Command对象的Execute方法,其语法如下:

Set Recordset 对象=Server. CreatObject(“ADODB. Recordset”)

然后,;利用Open方法打开一个数据库,语法是:Recordset对象. Open[Surce],[ActiveConnection],[CursorType],[LockType],[Options]

1. Recordset对象属性

(1)CursorType属性

设置或返回当前记录集所使用的指针类型。这个属性的取值如下:

1)  adOpenForwardOnly 0 向下指针,为系统默认值,仅提供向下指针。适用于仅需要向前移动记录的场合,以提高系统的响应速度。直接用Cornmand或Connection对象的Execute方法创建的游标就属于该类游标

2)  adOpenKeyset 1 键盘指针,在记录集中指针可以向上和向下移动,其他用户的修改和删除是可见的,但添加的数据是不可见的。

    adOpenDynamic 2 动态指针,在记录集中指针可以向上和向下移动,所有的修改都会立即在其他客户端显示。

    adOpenStatic 3 静态指针,在记录集中指针可以向上和向下移动,所有的修改都不会立即在其他客户端显示。

  rs.CursorType= adOpenKeyset

<%= rs.CursorType %>

(2)  CursorLocation属性

该属性设置使用的指针类型,也决定Recordset对象是否可以排序。它的取值有两个, 

1) adUseServer 2 使用服务器端的指针,默认设置。若设置为该值,则Recordset对象将不能使用Sort属性进行排序

2) adUseClient 3 使用客户端的指针。若设置为该值,则Recordset对象将能使用Sort属性进行排序

db.CursorLocation= adUseClient

(3) Sort属性

该属性指定数据集将按哪些字段进行升序或降序排序。可以设置或返回一个用逗号分割的字段名排序字符串,其中的每个名称是Recordset中Field

rs.Sort=”排序字段名表”

<% = rs.Sort %>

(4) Source

该属性用于设置或返回数据库查询信息,可以是Command对象名、SQL语句或表名等。语法为:

rs.Source=数据库查询信息

<%= rs.Source %>

(5) ActiveConnection

该属性用于设置或返回数据库连接信息,可以是Connection对象名或包含数据库连接信息的字符串。语法为:

rs.ActiveConnection=数据库连接信息

(6)Bof

该属性用于判断当前记录指针是否在记录集的开头

(7)Eof

该属性用于判断当前记录指针是否在记录集的结尾

(8)RecordCount属性

该属性用于返回记录集中的记录总数

<% rs.RecordCount %>

注意:使用该属性必须设置指针类型CursorType为1(键盘指针)或3(静态指针),否则返回错误。

(9)PageSize属性

该属性用于设置数据分页显示时每一页的记录数。默认值为10。语法为:

rs.PapeSize=整数

(10)PageCount属性

该属性用于返回数据分页显示时数据页的总数。语法为:rs.PageCount

如果Recordset对象不支持该属性,则返回值为-1,表明PageCount无法确定。

2.Recordset对象

(1)Open

该方法用来打开记录集。语法为:

Recordset对象

.Open[Source],[ActiveConnection],[CursorType],[LockType],[Options]

(2)Close方法用法

关闭Recordset对象。

rs.close

(3)AddNew方法

用于向数据库中添加记录。添加方法为:

方法一、建立字段名数组和字段值数组,然后用AddNew方法添加记录。

方法二、在数据库中添加空白记录,然后设置字段对象的值

(4)Delete方法

删除当前记录

rs.delete

rs.update

(5)Update方法

更新数据库数据,即对所做的修改保存到数据库。

(6)CancelUpdate方法

取消对数据库数据的更新,即从缓冲区中除掉数据,取消更新。

2.5  数据库

2.5.1  数据库的管理系统

在ASP中一般使用SQL Server或Access数据库。SQL Server运行稳定、效率高、速度快,但配置起来较困难、移植也比较复杂,适合大型网站使用;Access配置简单、移植方便,但效率较低,适合小型网站。

本系统用到的就是Access数据库

2.5.2  建立Access数据库

Access是微软出版的Office系列办公软件的重要组成部分,安装Office时默认会自动安装Access。

下面就以Access2003为例说明主要的操作。就以该程序的用户注册模块为例,建立一个用户记录数据库

新建数据库

  依次选择菜单命令[开始]/[程序]/[Microsoft Access]就可以启动Access2003,首先出现的是如图2-5-1所示的对话框。

图5-2-1  系统导航页面

图5-2-2  用户注册页面

图5-2-3 注册成功页面

图5-2-4 系统考试的登录页

图5-2-4  账号管理界面

如果您在计算机领域有任何疑虑或不确定的地方,请毫不犹豫地与老师交流噢,我们期待着为您提供有针对性的建议和指导。您的问题和讨论对我们来说都非常重要。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/217894?site
推荐阅读
相关标签
  

闽ICP备14008679号