四川电力职业技术学院
课程情况总体简介
授课学时, 80学时
课程性质, 网站设计专业的一门 主干 专业技术课,是一门 实践
性、综合性 很强的课程。
课程任务, 1.了解 动态网站的规律;
2.认识 动态网站设计的 方法,动态网站的 典型结
构,动态网站构建的 方法与手段;
3.掌握 动态网站的 设计方法,动态网站构建的方
法 ;
4.具备 进行中等复杂 动态网站的设计 能力与构建
能力。
总目录
第一章 网络程序设计概述
第二章 ASP初步
第三章 ASP脚本语言 -VBScript
第四章 ASP常用内部对象
第五章 数据库基础知识
第六章 ASP数据库编程
第七章 文件存取组件及其它组件
第八章 网络程序开发实例
内容简介:
第一章 网络程序设计概述
本章讲述网络程序设计的一些基础知识
涉及WWW、服务器端、客户端概念,静态网页工作原理和
动态网页工作原理;常见网络程序设计语言及工作原理、选用原
则;动态网站基本原理和规律等 。
学习目的与要求:
1,掌握服务器端, 客户端概念, 静态与动态网页分类;
2,认识常见网络程序设计语言, 掌握选用原则;
3,掌握 静态网页工作原理和动态网页工作原理;
4,了解ASP与PHP的异同;
5,了解 ASP与JSP的异同 。
重点:
静态网页、动态网页基本概念、静态网站工作原理、动态网
站工作原理、网络程序设计语言及选用。
难点:
PHP的要点和JSP要领及其应用。
1.1 网络程序设计语言的产生背景
为了资源的共享,人类创建了计算机网络,进入20世纪90年
代以来,Internet发展迅猛,目前提供的服务主要是:WWW、EMA
IL、FTP、新闻组,Telnet,电子商务等服务。
最初的WWW网页主要用来呈现一些静态信息,一般用超文本标
记语言HTML来实现,以提供信息资源为主。
1.1 网络程序设计语言的产生背景
随着网络技术的快速发展,远程教育、电子商务、电子政务等网
上应用蓬勃发展,这就要求WWW不仅可以显示有关信息,而且可以实
现网上交流、网上办公。在这样的背景下,网络程序设计语言应运而生。
第一章 网络程序设计概述
1.2 WWW的工作原理
1.2.1 什么是服务器端、客户端
凡是提供服务的一方称为服务器端,而接受服务的一方称为客户
端。比如:当我们浏览四川电院主页时,四川电院所在的服务器称为服
务器端,而我们自己的计算机就称为客户端,如图1-1所示。
而服务器端和客户端的根本含义是:它们是二种不同的角色。服务
器端:提供服务,客户端:接受服务。
这二种角色即可以由不同的计算机充当,也可以由一台计算机
充当。
1.2.2 静态网页的工作原理
所谓静态网页,就是说该网页文件里没有程序代码,只有HTML
标记,这种网页一般以后缀,htm 或,html存放。静态网页一旦制成,内容
就不会变化,如果要修改有关内容,就必须修改源代码。
静态网页的工作原理为:当你在浏览器里输入一个网址回车后,就
向服务器端提出了一个浏览网页的请求,服务器端接到请求后,就会找
到你要浏览的静态网页文件,然后发送给浏览器,由浏览器把内容展示
出来。
静态网页的工作原理图为1-2所示。
1.2.3 动态网页的工作原理
所谓动态网页,就是该网页文件不仅含有HTML标记,而且
含有程序代码,这种网页的后缀一般根据不同的程序设计语言而不同,
如ASP文件的后缀为,asp。 动态网页能够根据不同的时间、不同的来
访者而显示不同的内容。
动态网页的工作原理:当你在浏览器里输入一个动态网页网址
回车后,就向服务器提出了一个浏览网页的请求,服务器接到请求后,
首先会找到你要浏览的动态网页文件,然后就执行网页文件中的程序
代码,将执行结果转化为标准的静态网页,然后将静态网页发送给浏
览器。其原理图为1-3所示:
1.3 目前主要的网络程序设计语言
目前,主要有ASP、PHP、JSP程序设计语言。ASP、
PHP和JSP基本上都是把脚本语言嵌入HTML文档中。它们最
主要的优点是:ASP学习简单,使用方便 ; PHP软件免费 ;JSP多
平台支持,转换方便。
1.3.1 ASP概述
ASP全称 Active Server Pages,是微软推出的用以取代CGI
( Common Gateway Interface)的动态服务器网页技术。
ASP目前可在 Windows NT,Windows 2000,Windows XP上运
行,在 Windows 98上装上个人 Web服务器PWS(P ersonal Web Server)
后也可以运行。它对客户端没有任何特殊的要求,只要有一个普通的
浏览器就行。
ASP文件就是在普通的HTML文件中嵌入VBS cript或 JavaScRipt
脚本语言。
ASP提供了常用内部对象和内部组件,利用它们可以很方便地
实现表单上传、存取数据库等功能。
ASP的优缺点概括如下:
1、ASP的优点
(1)ASP所使用的 VBScript脚本语言直接来源于VB语言,
简单易学。
(2)把脚本语言直接嵌入HTML文档中,不需要编译和连接
就可以直接解释运行。
(3)利用ADO组件轻松存取数据库。
(4)面向对象编程
2、ASP的缺点
(1)运行速度较慢
服务器每次都必须将客户端打开的ASP网页从头到尾重读
一遍,并加以解释执行
(2)有的网络操作系统不支持ASP
1.3.2 PHP概述
PHP开始是一个用 Perl语言编写的程序。
PHP程序可以运行在UNIX,LINUX或WINDOWS
操作系统下,对客户端浏览器也没有特殊要求,但其运行环境安装比较
复杂。PHP、MYSQL数据库和AP ache Web服务器是一个比较好
的组合。
PHP的优缺点概括如下:
1、优点
(1)免费
(2)开放源码,所有的源码和文档都可以免费复制、编译和传
播。
(3)多平台支持
(4)效率高,同ASP相比,PHP占用系统资源较少,执行
速度较快
2、缺点
(1)运行环境安装相对复杂
(2)相对于ASP来说,学习可能稍微复杂些
(3)没有营业性大公司的支持
1.3.3 JSP概述
JSP的全称是 Java Server Pages,它是由SUN公司提出,多家
公司合作建立的一种动态网页技术。其目的是整合已经存在的 Java编程
环境。
JSP的最大优点是开放的、跨平台的结构。它可以运行在几乎
所有的服务器系统上,包括WINDOWS NT、WINDOWS
2000、UNIX、LINUX、WINDOWS 98等。JSP
也是在服务器端运行的,对客户端浏览器要求很低。
JSP就是将 Java程序片段和JSP标记嵌入普通的HTML文
档中。当客户端第一次请求JSP文件时,该文件将被编译成 Servlet 并
由 java虚拟机执行,以后就不用再编译了,提高了执行效率。
JSP的优缺点概括如下:
1、优点
(1)支持多平台
(2)编译后执行,能够大大提高执行效率
(3)JSP采用 Java技术
2、缺点
(1)开发运行环境相对于ASP来说,稍显复杂
(2)相对于ASP的脚本语言,Java语言学起来稍微难些。
1.4 本章小结
ASP、PHP、JSP各有优缺点,但编程语言的思想则大同
小异,只要掌握了一门编程语言,就可以达到触类旁通、举一反三的
效果。
而ASP是微软的产品,与目前普遍使用的WINDOWS系统
和IE浏览器相容,且有微软的强大支持。而且,ASP所使用的V
BSCRIPT脚本语言直接来源于VB语言,简单易学,目前AS
P网上各种资源也非常丰富,这些都给使用ASP带来了极大的方便。
第二章 ASP初步内容简介:
本章讲述ASP的一些基础知识
涉及服务器端、客户端、操作系统概念,ASP的运行环境,
IIS的安装及调试,ASP文件的浏览,默认文档的设置,制
作一个简单的ASP文件,ASP的语法简介及开发ASP程序
时的注意事项等 。
学习目的与要求:
1,掌握IIS的安装及调试;
2,认识常见开发ASP程序的注意事项;
3,掌握ASP文件的组成及制作过程 ;
4,了解ASP的开发工具;
5,了解 ASP的运行环境 。
重点:
难点:
ASP的运行环境、IIS的安装、ASP文件的构成及制
作、ASP文件的简单语法。
开发ASP程序时的注意事项
2.1 ASP的运行环境
服务器端运行环境可作如下选择:
(1) Windows 2000 + IIS5.0(Internet 信息服务管理器 5.0)
(2) Windows XP + IIS5.0(Internet 信息服务管理器 5.0)
(3) Windows 98 +PWS4.0(Personal Web Server 4.0)
(4) Windows NT4.0 + Windows NT Option Pack
客户端:只要是普通的浏览器即可
本书讲述主要以在W indows 2000系统上调试和运行 ASP为主。
2.1.1 安装IIS5,0
如果是W indows 2000 Server 或者 Windows 2000 Advance
Server版本,一般已经自动安装了IIS。
如果是 Windows 2000 Professional版本,则需要自己安装IIS管理器,
安装方法如下:
依次选择【开始】【设置】【控制面板】【添加 /删除程序】命令,在
【添加 /删除程序】对话框中选择【添加 /删除 Windows组件】按钮,就
会弹出如图 2-1所示的,Windows组件向导”对话框,在其中选择
,Internet信息服务(IIS)”,然后单击【下一步】按钮,以后根据
提示一步步安装即可。
安装完毕后,在IE浏览器中输入 http://localhost,如果能显示IIS欢
迎字样,就表示安装成功。
安装成功后,依次选择【开始】 【程序】 【管理工具】 【 Internet服
务管理器】菜单命令,就会出现如图 2-2所示的【 Internet 信息服务】窗
口。
在图 2-2中左侧选择“默认 Web站点”,右边显示的是
,C:\inetpub\wwwroot‖中的内容。该文件夹是默认的WWW主目录,是
IIS安装过程中自动生成的,一般情况下,大家制作的网页文件都可
以存放在该文件夹或该文件夹的子文件夹中。
2.1.2 浏览ASP文件
默认的WWW主目录是,C:\inetput\wwwroot”,现在把任意一个A
SP文件(如 wyl.asp) 复制到该文件夹下,就可以通过如下方法访问
该文件:
(1)http://localhost/wyl.asp
(2)http://127.0.0.1/wyl.asp
(3)http://您的计算机的名字 /wyl.asp
(4)http://您的计算机的IP地址 /wyl.asp
注意:前3种方法一般指的是在自己的计算机上访问自己的ASP文
件,第4种方法指的是别人通过 Internet访问您的ASP文件(前提:
你的计算机必须连入 Internet且别人知道你的IP地址)。
2.1.3 添加虚拟目录
如果要开发不同内容的网站,可在磁盘上建立一个自己的文件夹,
并将自己制作的网页存放在此文件夹中,然后建立一个虚拟目录,并将
它与自己的文件夹相关联。如创建一个 aspjpkc文件夹,再添加虚拟目
录,其过程如下:
在图2-2中对准“默认WEB站点”单击鼠标右键,在快捷菜单中选
择 【新建】【虚拟目录】命令,然后按提示执行,如图 2-3添加别名
,infasp‖,如图 2-4选择对应文件夹 aspjpkc,最后完成即可。
设置虚拟目录后,就可以在IE浏览器中输入
http://localhost/infasp/wyl.asp来访问。
注意,infasp是虚拟目录的名字,它是一个别名,可以随便命名。但初
学者,虚拟目录别名和文件夹名尽量一致,这样不易混淆。
2.1.4 设置默认文档
默认文档的作用是:如果在浏览器地址栏里输入
http://localhost/infasp,并没有输入哪个网页文件的名字,系统就会
自动按默认文档的顺序在 infasp里查找,找到后就显示。如按照图2-
5中默认文档的设置,首先去找 index.asp,如果找不到就去找
index.htm。
设置方法如下:鼠标右击虚拟目录 infasp,在弹出的快捷菜单中选择
【属性】命令,在其中添加 index.asp,index.htm等默认文档
后确定即可。
2.2 ASP的开发工具
开发ASP文件,最好的工具是 Microsoft Visual InterDev,利
用它不仅可以编写还可以调试,而且可以多人合作开发,开发大型的
Web程序最好使用它。
初学者可使用记事本,FrontPage等任何文本编辑器,编写完毕
后,保存时扩展名为 asp的文件即可。
也可使用 EditPlus(下载网址,http://www.editplus.com),它可
以将ASP脚本语言与HTML语言分颜色显示,并可帮助编写复杂的
HTML语句。
2.3 制作一个简单的ASP文件
该例子的功能是显示来访日期和时间
2.3.1 新建ASP文件
打开 EditPlus,然后在菜单栏中依次选择【 File】 【 New】
【 HTML Page】 菜单命令之后,输入程序代码,如:代码清单 2-1中
的全部代码
<html>
<head>
<title>一个简单的 ASP程序 </title>
</head>
<body>
<H2 align="center">欢迎您光临我的主页 </H2>
<p align="center">
<%
n=Year(date())
y=Month(date())
r=Day(date())
sj="您来访的时间是," & n & "年 " & y & "月 " & r & "日 "
Response.Write sj '输出结果
%>
</body>
</html>
2.3.2 保存ASP文件
输入完毕后,依次选择 【F ile】 【 Save】,该文件命名为
2-1.asp,保存在 aspjpkc\chapter2文件夹中,然后单击【保存】按钮即可。
2.3.3 浏览ASP文件
打开浏览器,在地址栏中输入
http://localhost/infasp/chapter2/2-1.asp,按回车键后,程序运行结
果如图所示。显示的时间就是服务器端的当前时间。
在图中单击鼠标右键,在弹出的快捷菜单中选择 【查看源文件】
菜单命令,就会出现如图所示的源代码。可以看出,发送到客户端的文
件是经过解释执行的文件,程序代码执行后的结果已经转化为标准的H
TML标记文件。
2.4 ASP的语法简介
ASP文件就是在标准的HTML页面中嵌入了 VBScript代码或
JavaScript后形成的,而 <%与 %>符号之间的内容就是 VBScript或
JavaScript代码。
2.4.1 ASP文件的基本组成
一个简单的ASP文件可以包括以下3个部分。
1、普通的HTML文件
2、服务器端的脚本程序代码:位于 <%与 %>内的程序代码
3、客户端的脚本程序代码:位于 <Script>…</Script> 内的程序
代码。
2.4.2 ASP文件的约定
1、所有的脚本程序代码均须放在 <%与 %>符号之间(仅有
Global.asa文件例外)。
2、在ASP里面,VBScript是默认的脚本语言,如果在A
SP网页中使用其他的脚本语言,可以用以下的方法切换:
<%@Language=VBScript%>脚本语言为 VBScript
或
<%@Language=JavaScript%>脚本语言为 JavaScript
3,默认为 VBScript
2.5 开发ASP程序时的注意事项
1、在ASP程序中,字母不分大小写
2、在ASP中,凡是用到标点符号的,都是在英文输入状态
下的标点符号,否则将出错。但在字符中使用的标点符号除外。
3、普通的HTML元素可以在一行里连着写,而ASP语句
必须分行写。
4、在ASP中,<%和 %>的位置是相对随便的
5、养成良好的书写习惯
6、在ASP源程序中,可以包含HTML语言,两者是很好
地结合在一起的。在编写ASP网页时,可充分利用 HTML编程工具来
编写复杂的HTML,然后再将脚本插入到HTML中,以提高效率。
第3章 ASP脚本语言 -VBScript内容简介:
本章讲述ASP脚本语言知识
涉及数据类型、常量、变量、数组、函数概念,有关数据类
型及其取值范围、常量与变量声明、数组定义及应用、函数定义
及应用等 。
学习目的与要求:
1,掌握常量, 变量, 条件语句, 循环语句;
2,认识常见语句出错信息;
3,掌握数组, 函数的定义及应用 ;
4,了解注释语句;
5,了解容错语句 。
重点:
难点:
常量、变量,条件语句、循环语句,数组、函数
数组、函数
3.1 脚本语言概述
脚本语言是一种介于HTML语言和 Visual Basic,Java等高级
语言之间的一种语言。
ASP程序中常用的脚本语言有 VBScript和 JavaScript等语言,
默认语言为 VBScript语言。
VBScript直接来源于VB( Visaul Basic)语言.
脚本程序既可以在客户端执行,也可以在服务器端执行,一般A
SP程序中的 VBScript语言都是放在服务器端执行的.
3.2 VBScript代码的基本格式
VBScript语言在服务器端执行有两种方法:
方法一,<% VBScript代码 %>
方法二,<Script Languge=―VBScript‖ Runat=―Server‖>
VBScript代码
</Script>
一般情况下,使用方法一
也可以将 VBScript代码放在客户端执行,其语法形式为:
<Script Languge=―VBScript‖>
VBScript 代码
</Script>
3.3 VBScript的数据类型
在 VBScript中只有一种数据类型,称为 Variant,也叫做变体类型,
它是一种特殊的数据类型,根据不同的使用方式,它可以包含不同的数
据类别信息.
3.4 VBScript常量
常量就是拥有固定的数值,它可以代表字符串, 数字和日期等常
数,常量一经声明,其值将不能再更改.
声明常量可以使用 Const语句,示例:
<%
Const PI=3.1415926
Const name_wyl=,王益亮”
%>
常量的命名规则和变量一样,不能使用关键字.
常量的作用域由声明它的位置决定.
3.5 VBScript变量
变量就是存储在内存中的用来包含数据的地址的名字.
声明变量可以使用 Dim语句,示例:
<%
dim name,age,sex
%>
如果希望强行要求所有的变量都预先声明,则在ASP文件中
所有的ASP语句之前添加 Option Explicit语句.
变量的命名规则和作用域同常量.
3.6 VBScript数组
数组就是存储在内存中的用来包含数据的一组地址的名字.
数组的命名、声明,赋值和引用与变量基本上一样,不同的是要声明
数组中的元素个数即长度.
示例:
<%
Dim sum
Dim num(3) ?声明一个元素个数为4的数组
num(0)=1 ?给第一个数组变量赋值
num(1)=2 ?给第二个数组变量赋值
sum=num(0)+num(1) ?引用数组变量,将其和赋值给 sum变量
%>
数组的下标从0开始.
可以声明一个变长数组,或称为动态数组.
如,<%dim name() %>
3.7 VBScript运算符
运算符包括算术运算符,比较运算符、逻辑运算符和连接运算
符.
运算符的优先顺序:算术运算符 连接运算符 比较运算符
逻辑运算符.
3.8 VBScript函数
3.8.1 转换函数
使用转换函数可以强制转换数据的子类型.
3.8.2 字符串函数
可以使用字符串函数对字符串进行截头去尾和大小写转换等操
作.
示例:
<%
str=mid(―this is a good book‖,11,4) ?从中间第 11个位置开始取4个字符,
返回 good
str=trim(― good luck ‖) ?去掉两边空格,返回 good luck
str=ucase(―wyl‖) ?将小写转换成大写,返回 WYL
num=instr(―good luck to you‖,‖l‖) ?返回第2个字符串在第1个字符串中
第一次出现的位置,返回6
%>
3.8.3 日期和时间函数
可以使用日期和时间函数来得到各种格式的日期和时间.
如,Now()取得系统当前的日期和时间
Date()取得系统当前的日期
3.8.4 数学函数
使用数学函数来完成数学运算.
如,abs(x)求 x的绝对值,sqr(x)求 x的平方根
3.8.5 检验函数
用来检验某变量是否是某种类型.
如,isnumeric(x)检查变量 x是否为数值类型
注意:函数的参数个数和类型
3.9 VBScript过程
在 VBScript中,过程有两种,Sub子程序和 Function函数,两者的
区别在于,Sub子程序只执行程序而不返回值,而 Function函数可以将执
行代码后的结果返回给请求程序.
3.9.1 Sub子程序
声明 Sub子程序的语法:
Sub 子程序名(参数1,参数2,...)
...
E nd
或
Sub 子程序名()
...
End
S ub过程的调用方式:
1.使用 Call语句
Call 子程序名(参数1,参数2,...)
2,不使用 Call语句
子程序名 参数1,参数2,...
示例:求 a和 b的立方和
<%option explicit%>
<html>
<head>
<title>求 a和 b的立方和 </title>
</head>
<body>
<%dim m,n
m=3
n=4
call cube(m,n)
‘下面是子程序,用来计算 a 和 b的立方和
Sub cube(a,b)
dim sum
sum=a^3+b^3
response.write ―a 和 b 的立方和是:” &cstr(sum)
End sub
%>
</body>
</html>
说明:
1,M,n是实际参数,而过程中的 a,b是形式参数,运行过程中,由实
际参数将具体数值传给形式参数
2.实参和形参位置和类型要一致
3.实参可以是常数 变量和表达式
4.变量的作用域,m,n在整个ASP文件内有效,而 sum则只在过程
内使用,在过程外是无效的.
3.9.2 Function函数
Function函数的语法,
Function 函数名 (参数 1,参数 2,?)
?
End Function
或
Function 函数名 ()
…
End Function
如果 Function过程无任何参数,则 Function语句必须使用空括号, 与 sub过程
不同的是,Function过程通过函数名返回一个值,这个值是在过程的语句中
赋给函数名的,Function返回值的数据类型是 Variant.
Function过程的调用方式只有一种,即通过直接引用函数名实现函数的
调用,而且函数名必须用在变量赋值语句的右端或表达式中,
示例,用函数来计算两个数的立方
<% Option Explicit '放在程序首行,强制变量声明 %>
<html>
<head>
<title> Function函数用法示例 </title>
</head>
<body>
<%
'下面是函数,用来计算两个数的立方
Function CountSum(a,b)
'由于 a,b为形式参数,在函数被调用时,其值由实际参数给出,
'所以此处不能再定义
CountSum=a^3+b^3
End Function
Dim Result
Result=CountSum(5,9) '调用函数,计算 5和 9的立方和
Response.write "5和 9的立方和等于 "& Cstr(Result) '显示结果
%>
</body>
</html>
3.9.3 子程序和函数的位置
子程序和函数可以放在 ASP文件的任意位置上,也可以放在另外一个
ASP文件中,
3.10 使用条件语句
使用条件语句对用户输入的信息进行判断,
3.10.1 If? Then? Else语句
语法形式如下,
1.If?Then?End if
If 条件 Then
执行语句
End If
2,If…Then…Else…End if ( 单条件 )
If 条件 Then
执行语句 1
Else
执行语句 2
End If
3,If…Then…Else…End if ( 多条件 )
If 条件 1 Then
执行语句 1
ElseIf 条件 2 Then
执行语句 2
…
End If
条件语句示例:
<% Option Explicit '放在程序首行,强制变量声明 %>
<html>
<head>
<title> If…Then…Else 语句用法示例 </title>
</head>
<body>
<%
Dim Grade
Grade=86 '这里为了简单,直接赋值了,一般来说应该是
传过来的参数,比如从数据库中读出,或由程序计算得出。
If Grade>=85 Then
Response.write "太不可思议了,你太厉害了 "
Elseif Grade>=70 and Grade<85 Then
Response.write "不错啊,继续努力吧 "
Elseif Grade>=60 and Grade<70 Then
Response.write "有点差,还需努力 "
Else
Response.write "我无话可说 "
End if
%>
</body>
</html>
3.10.2 Select Case 语句
对多个条件进行判定的另一种形式
Select Case 变量或表达式
Case 结果 1
执行语句 1
Case 结果 2
执行语句 2
?
Case 结果 n
执行语句 n
Case Else
执行语句 n+1
End Select
说明, 首先对表达式进行运算,然后,将运算结果依次与结果 1到结果 n作比
较,当找到与计算结果相等的结果时就执行该执行语句,执行完毕就跳出
Select Case条件式,当运算结果与所有的结果都不相等时,就执行 Case Else
后面的执行语句 n+1.
示例,<% Option Explicit %>
<html>
<head>
<title> Select Case 语句用法示例 </title>
</head>
<body>
<% Dim Grade
Grade="D" '这里为了简单,直接赋值了,一般来说应
该是传过来的参数,比如从数据库中读出
Select Case Grade
Case "A"
Response.write "太不可思议了,你太厉害了 "
Case "B"
Response.write "不错啊,继续努力吧 "
Case "C"
Response.write "有点差,还需努力 "
Case ELse
Response.write "我无话可说 "
End Select
%>
</body>
</html>
3.11 使用循环语句
对于重复的操作,使用循环语句进行描述,
常用的循环语句有,For?Next,Do?Loop 等
3.11.1 For? Next循环
语法,
For counter=start To end [Step number]
执行语句
Next
各参数说明如下,
counter:循环的计数器变量
start:计数器的初始值 end:计数器的终值
Step number:计数器的步长,缺省时为 1
示例,
<% Option Explicit %>
<html>
<head>
<title> For…Next 循环语句用法示例 </title>
</head>
<body>
<%
Dim Sum,I,N
Sum=0
N=100 'N值可以是其它地方传过来的值,这里简单的赋
值。
'循环,从 1加到 N
For I=1 to N
Sum=Sum+I
Next
Response.write "1+2+3+…+" & Cstr(N) & "=" & Cstr(Sum)
%>
</body>
</html>
3.11.2 Do… Loop循环
1,语法一, 或
Do While 条件 Do
执行语句 执行语句
Loop Loop While 条件
2,语法二
Do Until 条件 或 Do
执行语句 执行语句
Loop Loop Until 条件
示例,
<% Option Explicit %>
<html>
<head>
<title> Do…Loop 循环语句用法示例 </title>
</head>
<body>
<%
Dim Sum,I,N
Sum=0
N=100 'N值可以是其它地方传过来的值,这里简单的赋值。
I=1
'循环,从 1加到 N
Do While I<=N
Sum=Sum+I
I=I+1
Loop
Response.write "1+2+3+…+" & Cstr(N) & "=" & Cstr(Sum)
%>
</body>
</html>
3.11.3 While … Wend循环
语法,
While 条件
执行语句
Wend
3.11.4 For Each… In循环
功能,从一个集合中取出每一个元素
语法,
For Each 元素 In 集合
执行语句
Next
3.11.5 循环嵌套
嵌套,就是在一个大循环内可以包含一个小循环,
注意,嵌套不可以交叉
3.11.6 强行退出循环
在 For?Next 循环中,强行退出循环的指令是,Exit For
在 Do?Loop 循环中,强行退出循环的指令是,Exit Do
3.12 注释语句
只是在自己或别人阅读源程序时才能看到注释,以方便以后阅读
程序,
注释语句不执行,也不会显示在页面上,
一般用 Rem或’符号 (单撇号 )
3.13 容错语句
一般情况下,当程序发生错误时,程序会终止执行,并在页面上显
示错误信息,但有时不希望程序终止,也不希望将错误暴露在访问者面前,
就要用到容错语句,On Error Resume Next
这条语句表示,如果碰到错误,就跳过去继续执行下一句,
需要注意的是,调试程序时如果加了该语句,就不会发现错误了,
第四章 ASP常用内部对象
? Request和 Response对象
? Session和 Application对象
? Server对象
第 4.1节 Request和 Response对象
? 内容简介:
学习 ASP的 Request和 Response对象,学习如何使用 Request对象获取客
户端的数据,学习如何使用 Response对象向客户端输出数据。
? 目的与要求:
? 利用 Request对象的 Form方法获取表单中的信息
? 利用 Request对象的 QueryString方法获取表示在 URL后面的信息
? 利用 Request对象的 ServerVariables方法获取客户端 IP地址等环境变量
第 4.1节
? 目的与要求:(续)
? 利用 Request对象的 write方法输出信息及它的省略用法
? 掌握 Response对象的 Redirect方法,End方法,Buffer属性
? 利用 Response对象的 Cookies方法设臵 Cookies的值,利用 Request对象
的 Cookies获取方法获取 Cookies的值。
? 重点:
? Request对象的 Form方法
? Request对象的 QueryString方法 (难点)
? Response对象的 write方法,Redirect方法,Buffer属性
第 4.1节
4.1.1 ASP内部对象概述
对 象 功 能
Request 从客户端获取信息
Response 将数据信息输送给客户端
Session 存储单个客户的信息
Application 存放同一个应用程序的所有用户之间的共享信息
Server 创建 COM对象和 Scripting组件等
第 4.1节
4.1.2 利用 Request对象从客户端获得信息
4.1.2.1 Request对象简介
? 语法:
Request[.数据集合 |属性 |.方法 ](变量或字符串 )
? 例如:
<%
Request.From(“name”)
Request.QueryString(“name”)
%>
第 4.1节
4.1.2.1 Request对象简介
说 明:
? 传入的参数是要得到的该信息的变量的名称。
获取方法可以省略,ASP将会在 QueryString,Form,Cookies、
ServerVariables,ClientCertificate五种方法中检查是否有信息传入,
如果有则会返回获得的变量信息。
? ? [? 和 ? ]? 之间的参数可以省略,采用默认值;
? |? 表示 ? 或 ? 的意思。
第 4.1节
4.1.2.1 Request对象简介
Request对象的获取方法
获取方法 功 能
Form 取得客户端在 FORM表单中所输入的信息
QueryString 从查询字符串中读取用户提交的数据
Cookies 取得客户端浏览器的 Cookies信息
ServerVariables 取得服务器端环境变量信息
ClientCertificate 取得客户端浏览器的身份验证信息
第 4.1节
4.1.2.1 Request对象简介
Request对象的属性
属 性 功 能
TotalBytes 取得客户端响应数据的字节大小
属 性 功 能
BinaryRead 以二进制码方式读取客户端 POST数据
Request对象的属性
第 4.1节
4.1.2.2 使用 Form获取方法
1,FORM表单的语法
<form name=该 FORM的名称
method=表单上传方法 (post或 get),通常取值为 post
action=处理程序的地址
enctype=数据传送 MIME类型,通常可以省略
onsubmit=按下 submit所调用的程序,通常可以省略
target=输出窗口或分页名称,通常可以省略
……
FORM表单元素(如文本框、单选框、复选框等)
……
</form>
第 4.1节
4.1.2.2 使用 Form获取方法
2,FORM获取方法示例 (简单的计算器 4-1.asp)
<html>
<head><title> Form获取方法示例 1 </title></head>
<body>
<form name="test" method="post" action="4-2.asp">
a<input type="text" name="a"> +
b<input type="text" name="b">
<input type="submit" value="确定 ">
</form>
</body>
</html>
第 4.1节
2,FORM获取方法示例(续)
简单的计算器 4-2.asp
<html>
<head> <title> Form获取方法示例 1 </title></head>
<body>
<% Dim a,b,c
a=Request.Form("a")
b=Request.Form("b")
c=CInt(a)+CInt(b)
Response.Write "a+b的和 =" & CStr(c)
%>
</body>
</html>
第 4.1节
2,FORM获取方法示例(续)
简单的计算器运行结果
第 4.1节
3,FORM获取方法说明
? FORM表单和 FORM获取方法之间的区别,前者是 HTML提供的表单,后者是
ASP的 Request对象的一种获取方法
? 单选框,name属性相同,表示是一组,只能选择一个
? 多选框,name属性相同,表示是一组,可以选择多个,获取的结果中各
个值用逗号隔开
? Request.Form方法获取的是表单元素的 value属性值
第 4.1节
4.1.2.3 使用 QueryString获取方法
? 获取标识在 URL后面的所有返回的变量及其返回值
<a href=“4-1.asp?name=白云 &age=20”>显示 </a>
<%
Dim name,age
name=Request.QueryString("name") '返回姓名
age=Request.QueryString("age") '返回年龄
Response.Write "您的姓名是," & name & ",年龄是," & age
%>
? 显示得到的信息
? 可以直接在浏览器的地址栏输入传递的数据
第 4.1节
4.1.2.4 ServerVariables获取方法
? 语法:
Request.ServerVariables (“环境变量名称 ? )
? 例如:
输出客户端 IP地址
<%
IP=Request.ServerVariables (“REMOTE_ADDR”)
Response.Write,来访者的 IP地址是:? & IP
%>
第 4.1节
4.1.2.5 ClientCertificate获取方法
? 语法,Request.ServerVariables (关键字 )
4.1.2.6 TotalBytes属性
? 语法,Request.TotalBytes
4.1.2.7 BinaryRead方法
? 语法,Request.BinaryRead(字节大小 )
? 例如:
<%=Request.BinaryRead(Request.TotalBytes)%>
第 4.1节
4.1.3 利用 Response对象向客户端输出信息
4.1.3.1 Response对象简介
Response对象的属性
属 性 说 明
Buffer 设臵为缓冲信息。取值为 True或 False,默认为 False
ContentType 控制送出的文件类型
第 4.1节
Response对象的方法
方 法 说 明
Write 输出信息至客户端
Redirect 引导客户端浏览器至新的 Web页面
BinaryWrite 输出二进制信息
Clear 清除在缓冲区的所有 HTML页面前提,Response.Buffer=True
End 终止处理 ASP程序,并返回当时的状况
Flush 立刻送出缓冲区的 HTML数据前提,Response.Buffer=True
第 4.1节
4.1.3.2 使用 Write方法输出信息
? 语法:
Response.Write 变量或字符串
? 例如:
<%
Response.Write name &,您好!?
Response.Write,现在是:? & now()
Response.Write,天道酬勤?
%>
第 4.1节
? Write的省略用法,<%=变量或字符串 %>
? Write方法输出 HTML元素:
方法一:
方法二:
<%= name &,您好!? %>
<%= ?现在是:? & now() %>
<p>欢迎 <font color=“red”><%=name%></font>的来访!
<% Response.Write,<p>欢迎 <font color=?red?>” &name&”</font>的来访!? %>
第 4.1节
4.1.3.3 使用 Redirect方法
? 作用:引导客户端至另一个 URL地址
? 语法:
Response.Redirect 网址变量或字符串
? 例如:
<%
Response.Redirect,http://www.163.com”
Response.Redirect,other.sp”
theURL=“http://www.sina.com.cn”
Response.Redirect theURL
%>
第 4.1节
4.1.3.3 使用 Redirect方法(续)
? 注意:
要使用重定向功能,在 ASP文件开头加上:
<%Response.Buffer=True%>
引导至站内其他网页,一般使用相对路径
第 4.1节
4.1.3.4 使用 End方法停止 ASP程序
? 作用,终止 ASP程序
? 语法,Response.End
4.1.3.5 关于 Buffer属性
? 作用,设臵服务器是否将页面先输出到缓冲区。取值为 True或
False
? 语法,<% Response.End %>
第 4.1节
4.1.3.6 BinaryWrite方法
? 作用,输出二进制信息,不进行任何字符转换,直接输出
? 语法,Response.BinaryWrite 变量或字符串
第 4.1节
4.1.4 使用 Cookies
4.1.4.1 什么是 Cookies
? 含义:
俗称甜饼,可以在客户端长期保存信息。它是服务器发送到客户端浏
览器的文本串句柄,保存在客户的硬盘上,一般在 Windows文件夹下临
时文件夹下的 Cookies文件夹里
? 形式:
会话 Cookies和永久 Cookies
第 4.1节
4.1.4.2 使用 Response对象设臵 Cookies
? 语法:
Response.Cookies(“CookiesName”)[(关键字 )|.属性 ]=字符串
? 参数:
参 数 说 明
Cookies Cookies变量名称
关键字 若指定了 key,则该 Cookies就是一个集合,它包含几个关键字,可以分别赋值
属性 指定 Cookies自身的值
第 4.1节
4.1.4.2 使用 Response对象设臵 Cookies( 续)
? 属性,
名 称 描 述
Expires 仅可写入,指定该 Cookies到期的时间
Domain 仅可写入,指定 Cookies仅送到该网域( Domain)
Path 仅可写入,指定 Cookies仅送到该路径( Path)
Secure 仅可写入,设臵该 Cookies的安全性
HasKeys 只读,指定 Cookies是否包含关键字,也就是判定 Cookies目录下是否包含其他 Cookies
第 4.1节
4.1.4.2 使用 Response对象设臵 Cookies( 续)
注意,
? 使用 Cookies方法设臵 Cookies时,如果该 Cookies不存在,
则 ASP会自动建立一个;如果存在,原有值就会被覆盖
? Response.Cookies必须用在所有 HTML元素的前面;
如果想用在任意地方,文件开头必须加上:
<%Response.Buffer=True%>
第 4.1节
4.1.4.2 使用 Response对象设臵 Cookies( 续)
例如,
? 设臵不含关键字的 Cookies
<% Response.Cookies(“addr”)=“北京” %>
? 设臵含关键字的 Cookies
<% Response.Cookies(“addr”)(“a1”)=“北京”
Response.Cookies(“addr”)(“a2”)=“上海” %>
? 设臵 Cookies的有效期
<% Response.Cookies(“addr”)=“北京”
Response.Cookies(“addr”),Expires=#200510-10# %>
第 4.1节
4.1.4.3 使用 Request对象获取 Cookies
? 语法:
Request.Cookies(“CookiesName”)[(关键字 ) |.属性 ]
? 参数:
参 数 说 明
CookiesName 指定要检索的 Cookies的名称
关键字 可选参数,用于从 Cookies集合中检索子关键字的值
属性 指定所想要的 Cookies的值
第 4.1节
4.1.4.3 使用 Request对象获取 Cookies( 续)
? 说明:
Request.Cookies可以出现在 HTML程序的 <body>段中的任何位臵
如果请求一个为定义的 Cookies或关键字,返回空值
? 例如:
省略关键字的用法
<% Response.Cookies(“addr”)=“北京”
Response.Cookies Request.Cookies(“addr”)
%>
第 4.1节
例如 (续)
有关键字的用法
不指定关键字,则获取后的格式为:
?第一个关键字名称 =值 &第二个关键字名称 =值 …… ?
判定 Cookies关键字数目
语法,Request.Cookies(“CookiesName”).Haskeys
返回值,True False ( 是否含有多个关键字)
<% Response.Cookies(“addr”)(“a1”)=“北京”
Response.Cookies Request.Cookies(“addr”)(“a1”)
%>
第 4.1节
?1.请编写程序,根据客户的选择,分别重定向到教师或学生页
面。(提示,综合利用表单和 Redirect方法)
?2.请编写一个注册表单,客户填写注册信息后,将有关内
? 容显示在页面上。(提示,以后学了数据库知识,就可以
保存到数据库里了)
本节练习
第 4.1节
第 4.2节 Session和 Application对象
4.2.1.1 Session对象简介
? Session对象是什么?
? 为什么要用 Session对象?
? Session对象的有效期?
? 属性、方法
? 属性有下面两个:
?1,SessionID,存储用户的 Session ID
– 2,Timeout,Session的有效期时长
? 方法只有一个:
– 1,Abandon,清除 Session对象
第 4.2节
? 利用 Session可以保存变量或字符串等信息,语法如下:
? Session(―Session名字? )=变量或字符串信息
? 从 Session中调用该信息的语法:
? a=session(―Session名字? )
4.2.1.2 利用 Session存储信息
第 4.2节
Test5_1.asp Test5_2.asp
第 4.2节
4.2.1.3 利用 Session存储数组信息
? Session存储数组和存储简单信息基本上是一样的,只
? 不过要记住。 Session把传入的数组当成一个整体看
? 待,只能把一个数组整体存入取出。
? 保存信息的语法:
? Session(―Session数组? )=数组变量
? 获取 Session信息的语法:
? a=Session(―Session数组? )
第 4.2节
Test5_3.asp Test5_4.asp
第 4.2节
4.2.1.4 Timeout属性
? 利用 Timeout属性可以修改 Session对象的有效期时长,默认
为 20分钟。
? 语法:
? Session.Timeout=整数(分钟)
? 例如:
? <% Session.Timeout=30 ?改为 30分钟 %>
第 4.2节
4.2.1.5 Abandon方法
? Session对象到期后会自动清除,但到期前可以用 Abandon方法
强行清除。
? 语法:
? Session.Abandon
? 例如:
? <% Session.Abandon %>
第 4.2节
4.2.2.1 Application对象简介
? Application对象是什么?
? 为什么要用 Application对象?
? Application对象的有效期?
? 方法
?方法有两个:
?1,Lock 锁定
?2,Unlock 解除锁定
第 4.2节
4.2.2.2 利用 Application存储信息
? Application的使用也是比较简单的,你可以把变量或字符串
等信息很容易的保存在 Session中,语法:
? Application(―Application名字? )=变量或字符串信息
? 获取 Application中的信息也很容易
? a=Application(―Application名字? )
第 4.2节
Test5_5.asp Test5_6.asp
第 4.2节
4.2.2.3 利用 Application存储数组信息
? 利用 Application对象存储数组信息和 Session对象类似,也必
须把数组当成一个整体存入和读取,只是存储时别忘了 Lock
和 Unlock就行了。语法如下:
? Application(―Application数组? )=数组变量
? 获取 Application信息的语法:
? a= Application(―Session数组? )
第 4.2节
4.2.3.1 Global.asa文件
? 该文件是干什么的?
?Global.asa文件用来存放 Session对象和 Application对象事
件的程序,当 Session或 Application被第一次调用或结束时,
就会运行 Global.asa文件中对应的程序。
? 该文件的名字?
?必须叫做 Global.asa
? 该文件的位臵?
?存放在应用程序的根目录下,也就是说必须存放在
WWWRoot下。
第 4.2节
? Global.asa文件示例。
第 4.2节
显示在线人数
Test5_7.asp
第 4.2节
4.2.3.2 应用程序
? Global.asa文件到底有几个?
? 如果我做了一个个人网站,又做了一个单位网站,是不是
他们都共用一个 Global.asa?
? 有没有办法让不同的网站使用不同的 Global.asa文件?
? 在 WWWroot下分别建立几个文件夹可以不可以,
? 使用虚拟目录可以解决该问题。
第 4.2节
附:新建一个应用程序的方法
? 第一步,新建一个文件夹
? 第二步,添加虚拟目录
? 第三步,设臵默认文档
第 4.2节
1,添加虚拟目录
? 第一步:在 C:\inetpub\wwwroot下建立一个新的文件夹 temp
第 4.2节
添加虚拟目录
? 第二步:启动 IIS,对准默认 Web站点单击右键,依次选择
新建、虚拟目录
第 4.2节
添加虚拟目录
? 第三步:添加虚拟目录名
第 4.2节
添加虚拟目录
? 第四步:选择站点目录路径
第 4.2节
2,设臵默认文档
? 为什么要设臵默认文档?
当输入网址 http://www.pku.edu.cn后,我们并没有说明要
显示哪个文档?这时候,显示哪个文档就靠服务器上设臵
的默认文档。
第 4.2节
设臵默认文档方法:
? 第一步:启动 IIS,对准虚拟目录 temp单击右键,选择?属性?
命令。
第 4.2节
设臵默认文档方法:
? 第二步:启动 IIS,对准虚拟目录 temp单击右键,选择
?属性?命令。
第 4.2节
本节练习
? 1、请编辑一个注册表单,让客户输入用户名和密码,然后
把用户名保存到 Session中,在其它页面中显示用户名。
? 2、请对照教材,编写一个简单的聊天室软件。
? 3、请研究一下 IIS,是否可以在别的文件夹下建立网站?
第 4.2节
第 4.3节 Server对象
? 主要用来创建 COM对象和 Scripting组件、转化数据格式、
管理其他网页的执行。语法如下:
?Server.方法 |属性 (变量或字符串 |=整数 )
? Server对象的属性如表 6-1所示。
4.3.1 Server对象简介
第 4.3节
属 性 说 明
CookiesName 指定要检索的 Cookies的名称
? Server对象的方法如表 6-2所示。
4.3.1 Server对象简介
第 4.3节
方 法 说 明
CreatObject 用于创建已注册到服务器的 ActiveX组件、应用程序或脚本对象
HTMLEncode 将字符串转换成 HTML格式输出
URLEncade 将字符串转换成 URL的编码输出
MapPath 将路径转化为物理路径
Execute 停止执行当前网页,转到新的网页执行,执行完毕后返回原网页,继续执行 Execute方法后面的语句
Transfer 停止执行当前网页,转到新的网页执行。
? 规定脚本文件执行的最长时间。如果超出最长时间,脚本文件
还没有执行完毕,就自动停止执行。
? 默认最长时间为 90秒。 修改时间方法如下,
? <%Serve.ScriptTimeout=300 '设置最长执行时间为 300秒 %>)
? 也可以在页面上显示最长时间,方法如下,
? <%Response.Write Server.ScriptTimeOut %>表 6-1所示。
4.3.2 Server对象的属性和方法
4.3.2.1 ScriptTimeout属性
第 4.3节
? 主要用于创建组件、应用对象或脚本对象的实例。
? 语法如下,
? Set Server.CreateObject(ActiveX Server组件 )
? 例如,
? <%Set db=Server.CreatcObject("ADODB.Connection")
? '建立数据库实例 %>
4.3.2.2 CreateObject方法
第 4.3节
? 该方法用来转化字符串,它可以将字符串中的 HTML标记字符
转换为字符实体,如将 <转化为 &It;,将 >转化为 >。
? 语法如下,
? Server.HTMLEncode(变量或字符串 )
4.3.2.3 HTMLEncode方法
第 4.3节
? 例如:
第 4.3节
<html>
<head><title> HTMLEncode方法示例 </title></head>
<body>
<%
Response.Write "<a href='http://www.sohu.com'>搜狐 </a>"
Response.Write "<br>" '输出一个换行符
Response.Write Server.HTMLEncode ("<a href='http://www.sohu.com'>搜狐 </a>")
%>
</body>
</html>
4.3.2.3 HTMLEncode方法
? 运行效果如下:
第 4.3节
4.3.2.3 HTMLEncode方法
?用来转化字符串,它可以将其中的特殊字符,如把空格 转
化为相应的 URL编码,+”
?语法如下,
? Server.URLEncode(字符串 )
第 4.3节
4.3.2.4 URLEncode方法
? 将虚拟路径转化为物理路径。
? 语法如下:
? Server.MapPath(虚拟路径字符串 )
? 例如:
第 4.3节
4.3.2.5 MapPath方法
<%
Response.Write Server.MapPath("6-1.asp")
Response.Write "<br>" '换行
Response.Write Server.MapPath ("../chapter5/5-1.asp")
%>
? 运行效果如下:
第 4.3节
4.3.2.5 MapPath方法
第 4.3节
4.3.2.6 Execute方法
? 用来停止执行当前网页,转到新的网页执行,执行完毕后返
回原网页,继续执行 Execute方法后面的语句。
? 语法如下,
? Server.Exccute(变量或字符串 )
第 4.3节
4.3.2.6 Execute方法
?Execute方法和 Redirect方法的重大区别。
?重定向,Redirect语句发生在客户端; Execute方法发生在
服务器端。
?返回,Redirect语句不返回原网页; Execute方法返回原页
面,继续执行下面的语句。
?环境变量传递,Redirect语句不能传递; Execute方法可以
?转向,Redirect方法可以转向一个网页和其他网站;而
Execute方法一般只能转到同一个应用程序的其他文件。
第 4.3节
4.3.2.7 Transfer方法
? 用来停止执行当前网页,转到新的网页执行,执行完毕后不
返回原网页,而是停止执行过程。
? 语法如下,
? Server.Transfe(变量或字符串 ))
本节练习
? 1、请结合以前开发的考试程序,增加考试 HTML知识的题
目。例如:请问换行标记是什么?
? A,<p> B,<br> C,<hr> D,<a>
? 2,在考试程序中,使用 HTMLEncode方法防止用户输入
HTML语句。
第 4.3节
第五章 数据库基础知识
? 了解数据捧的基本概念。
? 会建立 Access数据库,会添加表和查询
? 掌握最基本的 SQL语句,尤其是 Select,Insert、
Delete和 Update语句
? 会给 Access数据库设臵数据源
第 5.1节 数据库的基本概念
第 5.1节
5.1.1 数据管理技术的发展阶段
? 人工管理阶段。
? 文件管理阶段。
? 数据库管理阶段。
第 5.1节
5.1.2 数据库 的基本术语
? 字段:表中纵的一列叫做一个字段,“年龄”就是选中字段
的名称。
? 记录:表中横的一行叫做一个记录,图中选择了第 2条 记
录,也就是“张洪”的相关信息。
? 值:纵横叉的地方叫做值。比如图中选择了“张洪”的年龄,
为,18"。
第 5.1节
5.1.2 数据库 的基本术语
? 表:由横行竖列垂直相交而成,可以分为表的框架 (也称表
头 )和表中的数据两部分。 图 7-1 就是一张表。
? 数据库:用来组织管理表的,一个数据库一般可以管理若
干张表。数据库不仅提供了存储数据的表,而且还包括规
则、触发器和表的关联等高级操作。
第 5.1节
5.1.3 数据库 管理系统
? 比较流行的大中型关系型数据库管理系统有:
SQL Server,IBM DB2,Oracle,SyBase,Informix等。
? 常用的小型数据库管理系统有,Access,Pradox,FoxPro
等。
第 5.1节
5.1.3 数据库 管理系统
? 在 ASP中一般使用 SQL Server或 Access数据库。
? SQL Server运行稳定、效率高、速度快,但配臵起来较困
难、移植也比较复杂,适合大型网站使用。
? Access配臵简单、移植方便,但效率较低,适合小型网站。
第 5.2节 建立 Access数据库
第 5.2节
5.2.1 规划自己的数据库
5.2.2 新建数据库
5.2.3 新建和维护表
? 新建表
? 保存表
? 在表中输入数据
? 修改数据表的设计
第 5.2节
5.2.4 新建和维护查询
? 新建简单查询。
? 显示查询内容。
? 利用 SQL语言建立查询 。
第 5.3节 SQL语言简介
第 5.3节
5.3 SQL语言简介
?Select语句 ——查询数据
?Insert语句 ——添加记录
?Delete语句 ——删除记录
?Update语句 ——更新记录新建简单查询。
第 5.3节
5.3.1 Select语句
?从数据库中查询有关记录
?语法,
Select [Top(数值 )] 字段列表 From表 [Where条件 ][Order By字
段 ][Group By字段 ]
第 5.3节
5.3.1 Select语句
下面举一些常见的例子说明。
? 选取全部数据
? 选取指定字段的数据
? 只选取前若干条记录
Select * From users
Select real_name,email From users
Select Top 3* From users
第 5.3节
5.3.1 Select语句
? 用表中原有的字段产生派生字段
? 根据条件选取数据
? 按关键字查找记录
Select real_name,(submit_date+365)As new_date From users
Select * From users Where submit_date<#2003-11-1#
Select * From users Where real_name like"%勇 %"
第 5.3节
5.3.1 Select语句
? 查询结果排序
? 查询满足条件的记录的总数
? 组合查询
Select * From users Order By real_name ASC
Select Count(*)As total From users Where submit_ date<#2003-11-1# 按关
键字查找记录
Select users.real_name,daylog.log_date,daylog.IP From users,daylog Where
users.user_name=daylog.user_name
第 5.3节
5.3.1 Select语句
? 查询结果排序
? 查询满足条件的记录的总数
? 组合查询
Select * From users Order By real_name ASC
Select Count(*)As total From users Where submit_ date<#2003-11-1# 按关
键字查找记录
Select users.real_name,daylog.log_date,daylog.IP From users,daylog Where
users.user_name=daylog.user_name
第 5.3节
5.3.2 Insert语句
Insert Into表 (字段 1,字段 2,…) Values( 字段 1的值,字段 2的值,
… )
?向数据库中插入数据
?语法,
第 5.3节
5.3.2 Insert语句
下面举一些常见的例子说明。
? 只插入 user_name字段
? 只插入 user_name字段和 real_name字段
? 只插入 user_name和 submit_date字段
Insert into users(user_name)Values("liya")
Insert Into users(user_name,real_name)Values("feiyun","飞云 ")
Insert Into users(user_name,submit_date) Values("luofang",#2003-12-5#)
第 5.3节
5.3.2 Insert语句
? users表中增加了一个年龄字段 age,为数字类型,则为,
? 在 users表中增加一条完整的记录
Insert Into users(user_name,age) Values("xhangpeng",23)
Insert Into users(user_name,password,real_name,tel,email,submit_date)
Values("晓云 ","123456","小云 ","654456","meng@163.com",#200310-10#)
第 5.3节
5.3.2 Insert语句
下面 举一些 经常出错的 Insert语句说明。
? user_name是主键,但没有赋值
? 字段不允许空字符申,却赋了空字符串
? 字符串字段两边没有加双引号
第 5.3节
5.3.3 Delete语句
? 使用 Delete语句来删除表中无用的一记录。
? 语法:
? 说明
Delete From表 [Where条件 ]
? ? Where条件?,凡是符合条件的记录都会被删除,如果
没有符合条件的记录则不删除。
? 如果省略? Where条件?,将删除所有数据。
第 5.3节
5.3.3 Delete语句
下面举一些常见的例子说明。
? 删除 user name为? tutu‖的用户
? 删除 2003年 1月 1日前注册,且 real_name为?李亚?的用
户
? 删除表中所有数据
Delete From users Where user name="tutu"
Delete From users Where submit_date<#2003-1-1# And real_name="李亚 "
Delete From users
第 5.3节
5.3.4 Update语句
? 使用 Update语句来实现更新数据的功能来
? 语法:
? 说明
Delete From表 [Where条件 ] Update 数据表名 Set字段 1=字段
值 1,字段 2=字段值 2,…[ Where条件 ]
? ? Where条件?的用法。凡是符和条件的记录都被更新,如果没有符合
条件的记录则不更新。
? 如果省略? Where条件?,将更新数据表内的全部记录。
? 如果想更新数据,也可以先删除再添加
第 5.3节
5.3.4 Update语句
下面举一些常见的例子说明。
? 修改 user_name为? jjshang?的用户的电话和 E-mail地址。
? 假如有年龄字段 age,将所有人的年龄增加 10岁。
Update users Set te1="8282999",emaiI="jjshang@l63.net" Where
user_name="jjshang"
Undate users Set age=age+10
第 5.4节 设臵数据源
第 5.4节
5.4 设臵数据源
?依次选择:
【开始】一【设臵】一【控制面板】一
【管理工具】一【数据源 (ODBC)】
?选择【系统 DSN】
?选择 Access 的驱动程序:? Microsoft Access Driver(*.mdb)‖
?输入数据源名称
?选择数据库
本章练习
? 1.建立用户数据库 address,包括数据表 users和 score。
? 2.在数据库 address中,建立查询
? 3.为数据库设臵数据源。
第 6章 ASP数据库编程
第 6章 ASP数据库编程
? 内容简介:
学习连接数据库,实现查询、添加、删除和修改功能,了解 ADO的几大
对象及相互关系,学习各种事务处理和分页显示数据,学习连接 SQL Server
数据库的语句。
? 目的与要求:
? 熟练掌握连接数据库的两种方式
? 利用 select语句查询记录,Insert语句添加,Delete语句删除,Update
语句修改记录
第 6章 ASP数据库编程
? 目的与要求:(续)
? 了解 ADO的几大内部对象,Connection对象,Recordset对象,Command
对象的概念和相互关系
? 会使用事务处理、会分页显示
? 连接 SQL Server数据库的语句
? 重点:
? 数据库连接和 SQL语句的写法
? 利用 execute方法和 sql语句实现查询、添加、修改、删除
? 利用 Connection对象,Recordset对象,Command对象实现数据库的深入
操作,如分页显示等 (难点 )
6.2.4 Recordset对象
6.2.4.1 建立 Recordset对象
6.2.4.2 Recordset对象属性
6.2.4.3 Recordset对象的方法
6.2.4.4 利用 Recordset对象查
询记录
6.2.4.5 分页显示数据
6.2.4.6 利用 Recordset对象更
新数据库
6.2.4.7 Field对象和 Fields集
合
6.2.5 存取 SQL Server数据库
6.2.5.1 连接 SQL Server数据库
6.2.5.2 存取 SQL数据库
6.2.5.3 SQL Server数据库和
ACCESS数据库的互相转化
6.2.6 对多个表进行组合查询
讲解提纲 (续 )
第 6章 ASP数据库编程
6.2 深入进行数据库编程
6.2.1 ADO的内部对象
6.2.2 Connection对象
6.2.2.1 建立 Connection对象
6.2.2.2 Connection对象的属性
6.2.2.3 Connection对象的方法
6.2.2.4 利用 Connection对象存取数据库
6.2.2.7 事务处理
6.2.2.6 Error对象和 Errors集合
6.2.3 Command对象
6.2.3.1 建立 Command对象
6.2.3.2 Command对象的属性
6.2.3.3 Command对象的方法
6.2.3.4 利用 Command对象存取数据库
6.2.3.7 非参数查询
6.2.3.6 参数查询
6.2.3.7 Parameter对象和 Parameters集合
组件 说明
数据库存取组件 用来存取数据库,是所有内臵组件中最强大
的一个
文件存取组件 用来存取文件,提供文件的输入输出方法
广告轮显组件 轻松构建广告页面,维护、修改方便
浏览器兼容组件 根据客户端浏览器类型的不同,送出正确的
Web页面
文件超链接组件 轻松建立象书本的索引或目录一样的超链接
Web页面
计数器组件 轻松统计网页访问次数
6.1.1 ASP内部组件概述
第 6章 ASP数据库编程
6.1.2.1 数据库存取组件简介:
数据库存取组件是使用 ADO技术存取数据库的一种 ASP内
臵组件,是 ASP内臵组件中最重要的和使用最多的一个组
件。
ADO包括三个主要对象是,Connection,Command和
Recordset
以下将以网络导航为例讲解:连接数据库、查询记
录、添加记录、删除记录、修改记录
6.1.2 利用数据库存取组件存取数据库
第 6章 ASP数据库编程
6.1.2.2 数据库准备
在 Access中建立数据库 wwwlink.mdb,存放在
C:\inetpub\wwwroot目录下,如图
第 6章 ASP数据库编程
6.1.2.3 连接数据库
<%
Set db=server.CreateObject(―ADODB.Connection‖)
Db.open ―wlink‖
%>
连接数据库,要用到 Connection对象。具体连接方法有两种:
利用数据源连接
特点:连接简单,但需要在服务器设臵数据源
假设配臵的数据源名字为 wlink,则代码如下
第 6章 ASP数据库编程
连接数据库
不用数据源的连接方法
优点:方便在机器之间移植代码
代码举例 (假设数据库与页面在同一目录下 ):
<%
Set db=server.CreateObject(―ADODB.Connection‖)
Db.open ―dbq=c:\inetpub\wwwroot\wwwlink.mdb;‖&_
―Driver={Microsoft Access Driver(*.mdb)}‖
%>
第 6章 ASP数据库编程
连接数据库
对于第二种方法,还可采用 Server对象的 Mappath方法,修
改为:
<%
Set db=server.CreateObject(―ADODB.Connection‖)
Db.open ―dbq=‖&server.mappath(―wwwlink.mdb‖)&_
―;Driver={Microsoft Access Driver(*.mdb)}‖
%>
第 6章 ASP数据库编程
6.1.2.4 利用 select语句查询记录
查询时,需要用 Connection对象的 Execute方法打开一个记
录集,然后在记录集中移动记录指针依次显示所有记录
<%
set db=Server.Createobject("ADODB.Connection")
db.Open "DBQ="&Server.Mappath("wwwlink.mdb")&_
";DRIVER={Microsoft Access Driver (*.mdb)};"
%>
建立一个 Connection对象实例 db
第 6章 ASP数据库编程
建立 Recordset对象实例 rs
dim strsql,rs
strsql="select * from link order by link_id desc" '按降序排列
set rs=db.Execute(strsql)
第 6章 ASP数据库编程
显示数据库记录
<%
do while not rs.Eof '只要不是结尾就执行循环
%>
<tr>
<td><%=rs("Name")%></td>
<td><a href="http://<%=rs("URL")%>" target="new"><%=rs("URL")%></a>
</td>
<td><%=rs("Intro")%></td>
<td><a href="6-3.asp?link_id=<%=rs("link_id")%>">删除 </a></td>
<td><a href="6-4.asp?link_id=<%=rs("link_id")%>">修改 </a></td>
</tr>
<% rs.movenext '将记录集指针移动到下一条记录
loop
%>
第 6章 ASP数据库编程
6.1.2.5 利用 insert语句添加记录
添加记录,利用 Connection对象的 Execute方法,不必返回
记录集。
set db=Server.Createobject("ADODB.Connection")
db.Open "DBQ="&Server.Mappath("wwwlink.mdb")&_
";DRIVER={Microsoft Access Driver (*.mdb)};"
第 6章 ASP数据库编程
连上数据库,建立一个 Connection对象实例 db
varName=Request("name") varURL=Request("URL")
varIntro=Request("intro")
插入 Sql语句的写法
StrSql="insert into link(name,URL,intro,submit_date) values('" &_
varName & "','" & varURL & "','" & varIntro & "','" & Date() & "')"
获取上个页面的插入信息
利用 Execute方法,添加记录
db.execute(strSql)
第 6章 ASP数据库编程
删除记录,利用 Connection对象的 Execute方法,不必返回
记录集
6.1.2.6 利用 Delete删除记录
连上数据库,建立一个 Connection对象实例 db
set db=Server.Createobject("ADODB.Connection")
db.Open "DBQ="&Server.Mappath("wwwlink.mdb")&_
";DRIVER={Microsoft Access Driver (*.mdb)};"
第 6章 ASP数据库编程
传过来的要删除的记录的记录编号
varLink_id=Request.QueryString("link_id―)
strSql="delete from link where link_id=" & varLink_id
删除 SQL语句的写法
利用 Execute方法,删除记录
db.Execute(strSql)
第 6章 ASP数据库编程
6.1.2.7 利用 Update修改语句
修改记录,利用 Connection对象的 Execute方法。
获取传入的要修改的 Link_ID
varLink_id=Request.QueryString("link_id")
连上数据库,建立一个 Connection对象实例 db
set db=Server.Createobject("ADODB.Connection")
db.Open "DBQ="&Server.Mappath("wwwlink.mdb")&_
";DRIVER={Microsoft Access Driver (*.mdb)};"
第 6章 ASP数据库编程
建立 Recordset对象实例 rs
strSql=―select * from link where link_id=‖ & varLink_id
?varLink_id是传过来的
set rs=db.Execute(strSql)
第 6章 ASP数据库编程
6.2 深入进行数据库编程
ADO的内部对象
Connection对象
Command对象
Recordset对象
存取 SQL Server对象
对多个表进行组合查询
第 6章 ASP数据库编程
6.2.1 ADO的内部对象
ADO的主要对象和功能说明
对象 说明
Connection 用来建立与数据库的连接
Command 用来对数据库执行命令,如查询、添加、删除,修改记录
Recordset 用来得到从数据库返回的记录集
第 6章 ASP数据库编程
6.2.2 Connection对象
学习 Connection对象的重点:
如何建立 Connection对象
Connection对象的 Execute方法
事务处理功能
注意事项
需明确建立 Connection对象,不明确时将利用 Command或 Recordset对象
直接连接数据库。这样无法利用 Connection对象的许多功能
Connection对象一般用来连接数据库,也可用来查询、添加、删除或修
改记录,但有一定局限性,如无法完成分页
第 6章 ASP数据库编程
6.2.2.1 建立 Connection对象
第一步:建立对象,语法如下:
Set Connection 对象
=Server.CreateObject(―ADODB.Connection‖)
第二步:用 open方法来打开连接,语法如下
Connection 对象,open ―参数 1=参数 1的值 ;参数 2=参数 2的
值 ;…… ?
第 6章 ASP数据库编程
Connection对象的 Open方法的参数
说明:
参数不会都用到,如 Access数
据库就不用 User和 Password
连接方式不同,参数不同,如
数据源用 DSN,而不用数据源
就用 DBQ和 Driver
多个参数之间用分号隔开,顺
序无关系
参数 说明
DSN ODBC数据源名称
User 数据库登录帐号
Password 数据库登录密码
Driver 数据库类型(驱动程序)
Dbq 数据库的物理路径
Provider 数据提供者
第 6章 ASP数据库编程
6.2.2.2 Connection对象的属性
属性 说明
Attribute 设臵 Connection对象控制事务处理时的行为
CommandTimeout Execute方法的最长执行时间
ConnectionString 指定 Connection对象的数据库连接信息
ConnectionTimeout Open方法与数据库连接的执行最长时间
CursorLocation 控制光标的类型
DefaultDatabase 指定 Connection对象的缺省数据库名称
IsolationLevel 指定 Connection对象的事务处理时机
Mode 指定数据库连接的权限
Provider 设臵 Connection对象内定的数据库管理程序名称
Version 显示 ADO对象的版本信息
第 6章 ASP数据库编程
<%
Db,ConnectionString=―Dbq=‖&Server.mappath(―address.mdb‖)&_
‖;Driver={Microsoft Access Driver(*.mdb)}‖
%>
CommandTimeout,默认值为 30秒,如设定为 0则无限制直到执行
完毕。如设臵最长时间为 60秒:
<%db.CommandTimeout=60%>,在服务器慢时使用
ConnectionString,指定连接信息,如:
第 6章 ASP数据库编程
Connection对象常用属性举例
第 6章 ASP数据库编程
ConnectionTimeout,该属性默认值为 15秒,如设定为 0,则表
示无限期等待直到 Open方法完成为止。
DefaultDatabase,当数据提供者提供多个数据库时,用该属性
设定默认数据库
Mode,见下页
Version,显示 ADO的版本信息
Connection对象 常用属性举例
<%Response.write db.version%>
Connection对象的 mode属性
例子:
<%
Set
db=server.createObject(―A
DODB.Connection‖)
Db.mode=1
%>
以上例子设臵属性为只读,
将不能对数据库进行添加、
删除或更新记录。
Mode参数 整数值 说明
AdModeUnknown 0 未定义
AdModeRead 1 只读
AdModeWrite 2 只写
AdModeReadWrite 3 读写
第 6章 ASP数据库编程
6.2.2.3 Connection对象的方法
方法 说明
Open 建立与数据库的连接
Close 关闭与数据库的连接
Execute 执行数据库查询
BeginTrans 开始事务处理
CommitTrans 提交事务处理结果
RollbackTrans 取消事务处理结果
第 6章 ASP数据库编程
Open,打开连接
Close,关闭连接,如
<% Db.close
Set db=nothing
%>
Excute:执行数据库查询
Set Recordset对象
=Connection对象,Excute(SQL字符串 )
或
Connection对象, Excute(SQL字符串 )
Connection对象常用方法 详解
Connection对象,BeginTrans
第 6章 ASP数据库编程
BeginTrans:开始一个事务
连接数据库,建立 Connection对象,address.mdb下面将建立
查询记录,建立 Recordset对象实例 rs
strSql="select * from users"
Set rs=db.Execute(strSql)
Do While Not rs.Eof
Response.Write rs("name") & "<br>"
rs.Movenext
Loop
6.2.2.4 利用 Connection对象存取数据库
strConn="DBQ=" & Server.Mappath("address.mdb") &
";Driver={Microsoft Access Driver (*.mdb)}"
Set db=Server.CreateObject("ADODB.Connection")
db.Open strConn
第 6章 ASP数据库编程
利用 Connection对象存取数据库(续)
更新记录,将李玫的电话号码改为 66666666
strSql="update users set tel='66666666' where name='李玫 '"
db.Execute(strSql)
strSql="delete from users where name='李玫 '"
db.Execute(strSql)
strSql="insert into users(name,tel,email) values‖_
‖('李玫 ','888','limei@263.net')"
db.Execute(strSql)
删除记录,删除李玫的记录
添加记录
第 6章 ASP数据库编程
6.2.2.7事务处理
开始事务处理
db.BeginTrans
If db.Errors.Count=0 Then
Db.CommitTrans
Else
Db.RollbackTrans
End If
如果数据库执行成功,则提交事务
如果有错误,则回滚事务
第 6章 ASP数据库编程
6.2.3 Command对象
建立 Command对象
Command对象的属性
Command对象的方法
利用 Command对象存取数据库
非参数查询
参数查询
Parameter对象和 Parameters集合
第 6章 ASP数据库编程
6.2.3.1 建立 Command对象
建立 Command对象,语法如下
Set Command对象= Server.CreateObject(―ADODB.Command‖)
用 ActiveConnection属性指定要用的 Connection对象,语法如下
Command对象,ActiveConnection=Connection对象
建立对象的两种方法
通过 Connection对象建立 Command对象
直接建立 Command对象
第 6章 ASP数据库编程
建立 Command对象举例
Set db=Server.CreateObject(―ADODB.Connection‖)
db.open ―addr‖ ?addr是数据源
Set cmd=Server.CreateObject(―ADODB.Command‖)
cmd.ActiveConnection=db
直接建立 Command对象
通过 Connection对象建立 Command对象
Set cmd=Server.CreateObject(―ADODB.Command‖)
cmd.ActiveConnection=―addr‖
第 6章 ASP数据库编程
6.2.3.2 Command对象的常用属性
属性 说明
ActiveConnection 指定 Connection连接对象
CommandText 指定数据库查询信息
CommandType 指定数据查询信息的类型
CommandTimeout Command对象的 Execute方法的最长执行时间
Prepared 指定数据查询信息是否要先行编译、存储 00
第 6章 ASP数据库编程
Command对象的常用属性详细说明
ActiveConnection:
CommandText, 其值可以是 SQL语句,还可是表名、查询名或存储
过程名:
CommandTimeout, 默认为 30秒,若为 0,则永久等待,直至执行,
下面设臵为 60秒:
通过 Connection对象操作数据库,语法为:
Comman对象, ActiveConnection=Connection对象
没有明确建立 Connection对象,语法为:
Command对象,ActiveConnection=数据源名称字符串
Command对象,CommandText=SQL语句、表名、查询名或存储过程名
第 6章 ASP数据库编程
<%cmd.CommandTimeout=60%>
CommandType, 语法,Command对象,CommandType=类型值
Prepared, 语法,Command对象,Prepared=布尔值,
True表示先编译存储,False反之
CommandType类型值
类型值 相应数值 说明
adCmdUnknown -1
CommandText参数类型无法确定,
需要程序本身去分析确定,减缓
查询速度,是系统的默认值
adCmdText 1 SQL语句
adCmdTable 2 数据表名
adCmdStoreProc 4 查询名或存储过程名
第 6章 ASP数据库编程
6.2.3.3 Command对象的方法
方法 说明
Execute 执行数据库查询(可执行各种操作)
CreateParameter 用来创建一个 Parameter子对象
Command对象的常用方法:
Execute,语法有两种
Set Recordset对象 =Command对象,Execute
或
Command对象,Execute
第 6章 ASP数据库编程
Command对象的方法(续)
方法 说明
number 返回本次操作符合条件的记录总数
Parameters 该参数用来输入查询参数数组
Options 设定 CommandType类型
CreateParameter,创造一个新的 Parameter对象(参数对象),
主要是进行参数查询的时候使用
Execute
Command对象的 Execute方法的参数:
第 6章 ASP数据库编程
6.2.3.4 利用 Command对象存取数据库
建立 Connection对象
strConn="DBQ=" & Server.Mappath("address.mdb") &_
";Driver={Microsoft Access Driver (*.mdb)}"
Set db=Server.CreateObject("ADODB.Connection")
db.Open strConn
Set cmd= Server.CreateObject("ADODB.Command")
cmd.ActiveConnection=db
建立 Command对象
第 6章 ASP数据库编程
strSql="Select * From users"
cmd.CommandText= strSql
Set rs=cmd.Execute
添加记录
strSql ="insert into users(name,tel,email) values‖&_‖
―('李玫 ','88888888','limei@263.net')"
cmd.CommandText=strSql
cmd.Execute
查询记录
第 6章 ASP数据库编程
strSql ="update users set tel='66666666' where name='李玫 '"
cmd.CommandText=strSql
cmd.Execute
删除记录,删除李玫的记录
strSql="delete from users where name='李玫 '"
cmd.CommandText=strSql
cmd.Execute
更新记录
第 6章 ASP数据库编程
6.2.3.5 非参数查询
前提,在数据库中建立查询,查询名为 list
建立数据库连接,连接对象名为 db
建立 Command对象
Set cmd= Server.CreateObject("ADODB.Command")
cmd.ActiveConnection=db
执行查询 list
cmd.CommandType=4 '指定查询信息是查询名,可以
省略
cmd.CommandText= ―list‖ ?指定查询名称
Set rs=cmd.Execute
第 6章 ASP数据库编程
6.2.3.6 参数查询
建立 Connection对象 db,代码略
建立 Command对象
建立一个参数对象 prm,并将该对象加入到参数集合中 。
Set cmd= Server.CreateObject("ADODB.Command")
cmd.ActiveConnection=db
prm_name="input_name" '参数名称,在 list2中的变量
prm_type=200 '参数类型,200表示是变长字符串
prm_direction=1 '参数方向,1表示输出
prm_size=10 '参数大小,最大字节数为 10
prm_value=―李玫 ? '要传入的参数值
Set prm=cmd.CreateParameter(prm_name,prm_type,prm_direction,prm_size,prm_value)
cmd.Parameters.Append prm '将参数对象 prm加入到参数集合中
第 6章 ASP数据库编程
cmd.CommandType=4 '指定查询信息是查询名
cmd.CommandText= "list2" '指定查询名称
Set rs=cmd.Execute
下面执行查询 list2
参数查询(续)
第 6章 ASP数据库编程
6.2.3.7 Parameter对象和 Parameters集合
参数 说明
Append 将一个 Parameter对象加到 Parameters集合中
Delete 删除一个 Parameter对象
Item 取得集合内的某个对象
Refresh 重新整理 Parameters数据集合
Parameters集合的方法
Parameters集合的属性:
只有一个属性 count,用于返回 Parameters集合中 Parameter
对象数目,语法,Command对象,Paraneters.Count
第 6章 ASP数据库编程
Parameter对象和 Parameters集合(续)
建立 Parameter对象,语法:
Set Parameter对象
=Command对象,createParameter( name,type,direction,size,value)
Command对象的 CreateParameter方法的参数意义
参数 说明
Name 参数名称
Type 参数类型
Direction 参数方向
Size 参数大小,指定最长字节
Value 参数值
第 6章 ASP数据库编程
Parameter对象和 Parameters集合(续)
参数 相应数值 说明
adDBTimeStamp 135 日期时间类型
adInteger 3 整数
adSingle 4 单精度小数
adDouble 5 双精度小数
adVarChar 200 变长字符串
Type取值
第 6章 ASP数据库编程
Parameter对象和 Parameters集合(续)
Direction取值
参数 相应数值 说明
adParamInput 1 传入
adParamOutput 2 传出
adParamInputOutput 3 传入传出
adParamReturnValue 4 从子程序返回数据到该参数中
Parameter对象的方法只有 AppendChunk一个,用于
添加数据到 Parameter对象的末尾,语法为:
Parameter对象,AppendChunk( 长文本或二进制数据)
第 6章 ASP数据库编程
Parameter对象和 Parameters集合(续)
6.2.4 Recordset对象
建立 Recordset对象
第 6章 ASP数据库编程
Recordset对象的方法
Recordset对象属性
利用 Recordset对象查询记录
分页显示数据
利用 Recordset对象更新数据库
Field对象和 Fields集合
6.2.4.1 建立 Recordset对象
建立 Recordset对象,标准语法是:
Set Recordset对象 =server.createobject(―ADODB.Recordset‖)
然后用 open方法打开一个数据库,语法是:
Recordset对象,open
[source],[activeconnection],[cursortype],[locktype],[option]
第 6章 ASP数据库编程
属性 说明 语法
Source Command对象名或 SQL语句或
数据表名
Recordset对象,source=数据库查询信
息
ActiveConnection Connection对象名或包含数
据库连接信息的字符串
Recordset对象, ActiveConnection=
数据库连接信息
cursorType Recordset对象记录集中的
指针类型,可省略
Recordset对象, cursorType= 取值
( 0或 1或 2或 3)
Locktype Recordset对象的使用类型,
可省略
Recordset对象, Locktype= 取值( 1
或 2或 3 或 4)
Maxrecords 控制从服务器取得的记录集
的最大记录数目
Recordset对象, Maxrecords
cursorlocation 控制数据处理的位臵,客户
端还是服务器端
Recordset对象, cursorlocation= 取
值( 1或 2或 3 )
6.2.4.2 Recordset对象常用属性
第 6章 ASP数据库编程
属性 说明 语法
Filter 控制欲显示的内容 Recordset对象, Filter= 整数值 (0/1/2/3)
Recordcount 记录集的总数 Recordset对象, Recordcount
Bof 记录集的开头 Recordset对象, Bof
(如是记录集开头返回 true,否则 false)
Eof 记录集的结尾 Recordset对象, Eof
(如是记录集开头返回 true,否则 false)
pagesize 数据分页显示时每一页的
记录数
Recordset对象, Pagesize= 整数
Pagecount 数据分页显示时数据页的
总数
Recordset对象, Pagecount
Absolutepage 当前指针所在的数据页 Recordset对象, Absolutepage= 整数
absoluteposition 当前指针所在的记录行 Recordset对象, Absoluteposition= 整数
6.2.4.2 Recordset对象常用属性(续)
第 6章 ASP数据库编程
6.2.4.3 建立 Recordset对象的几种方法
Set db=Server.CreateObject("ADODB.Connection")
db.Open "DSN=addr" '这里利用数据源连接
Set rs=db.execute(―select * from users") '建立 Recordset对象
利用 Connection对象的 Execute方法建立
‘ 建立数据库连接对象 db
'建立 Command对象
Set cmd= Server.CreateObject("ADODB.Command")
cmd.ActiveConnection=db
cmd.CommandText= ―select * from users"
Set rs=cmd.Execute
利用 Connection对象的 Execute方法建立
第 6章 ASP数据库编程
利用 Connection对象的 Execute方法的另一种方式
Set db=Server.CreateObject("ADODB.Connection")
db.Open "DSN=addr"
Set rs=Server.CreateObject("ADODB.Recordset")
Rs.open ―select * from users‖,db
利用 Connection对象的 Execute方法建立
‘ 假设已经建立数据库连接对象 db,然后
Set cmd= Server.CreateObject("ADODB.Command")
cmd.ActiveConnection=db
cmd.CommandText= ―select * from users"
Set rs=server.createobject(―ADODB.recordset‖)
Rs.open cmd
第 6章 ASP数据库编程
6.2.4.3 建立 Recordset对象的几种方法 (续 )
直接建立 Recordset对象
Set rs=server.createobject(―ADODB.recordset‖)
Rs.Open ―select * from users‖,―Dsn=addr‖
第 6章 ASP数据库编程
6.2.4.3 建立 Recordset对象的几种方法 (续 )
Recordset对象的方法
1,Open, 打开记录集,语法为
Recordset对象,open
[source],[activeconnection],[cursortype],[locktype],[options]2,Close:关闭记录集对象,语法:
Recordset对象,close
3,Requery,重新打开记录集,即先关闭再打开,语法:
Recordset对象,requery
4,Moveprevious,将记录指针移到上条记录,即向后移动一条,语法:
Recordset对象,moveprevious
5,Movefirst:将记录指针移动到第一条记录,语法:
Recordset对象,movefirst
第 6章 ASP数据库编程
Recordset对象的方法(续)
6,movenext, 将记录指针移到下条记录,即向前移动一条,语法为
Recordset对象, movenext
7,movelast:将记录指针移到最后一条记录,语法:
Recordset对象,movelast
8,move,将记录指针移动指定记录,语法:
Recordset对象, move
9,addnew,向数据库添加记录,语法:
Recordset对象,addnew 字段名数组,字段值
10,Delete,删除当前记录,语法:
Recordset对象,delete
第 6章 ASP数据库编程
Recordset对象的方法(续)
11,update, 更新数据库数据,语法为
Recordset对象, update
12,cancelupdate:取消更才的更新动作,语法:
Recordset对象, cancelupdate
13,getrows,从记录集中当前记录开始返回多条 (number,-1表示全部 )
记录,将符合要求的数据返回给一个二维数组( vararry),第一维
表示字段(列)第二维表示记录(行),语法:
Vararry=Recordset对象, Getrows(number)
14,resync,让客户端记录集与服务器同步更新,参数为 1或 2或 3,语法:
Recordset对象,resync[参数 ]
第 6章 ASP数据库编程
6.2.4.4利用 recordset对象查询记录
关闭 Recordset对象,关闭 Connection对象,代码略
建立 Connection对象 db,代码略
建立 Recordset对象
Set rs=Server.CreateObject("ADODB.Recordset")
strSql ="Select * From users"
rs.Open strSql,db
查询记录
Do While Not rs.Eof
Response.Write rs("name") & "<br>" '循环输出姓名字段值
rs.Movenext
Loop
第 6章 ASP数据库编程
? 分页所需条件 ? 记录集中的对应属性
1,rs.RecordCount
2,rs.PageSize
4,rs.AbsolutePage
1、总共有多少条记录?
2、每页显示几条记录?
3、总共有几页?
4、当前要显示哪一页?
3,rs.PageCount
第 6章 ASP数据库编程
6.2.4.5 分页显示数据
分页显示数据(续)
?记录集中的对应属性
1,rs.RecordCount
//直接得到记录集的记录总数
2,rs.PageSize
//需要赋值,如:每页显示 5条。 rs.PageSize=5
3,rs.PageCount
//直接得到属性值
4,rs.AbsolutePage
//需要赋值,如:当前显示第二页。 rs.AbsolutePage=2
第 6章 ASP数据库编程
? 如何动态的打印页码
<% For I=1 To rs.PageCount
Response.Write I //打印页码 I
Next %>
? 如何翻页
使用 For 循环实现:
1、确定循环的初值,如果 rs不为空,则初值是 1
2、确定循环的终值,取得 rs.PageCount属性值
改变 rs.AbsolutePage属性值
如:要浏览第二页,则 rs.AbsolutePage=2
第 6章 ASP数据库编程
? 如何通过页码实现翻页
在网页之间传递数据。本例为在本页传递页码值。
1、打印页码时,给页码加上超链接,并在链接地址后传递页码值。
链接地址为本页;
<% Response.Write "<a href='9-8.asp?page_no=" & I & "'>" & I & "</a> " %>
<% If Request.QueryString("page_no")="" Then
page_no=1
Else
page_no=Cint(Request.QueryString("page_no"))
End If
rs.AbsolutePage=page_no
%>
2、接收传递的页码值,并将页码值赋值给 rs.AbsolutePage 属性。
第 6章 ASP数据库编程
? 怎样显示当前页面的记录
确定循环的条件表达式
<% I=rs.PageSize '设置计数器, 每页最多循环 5次
Do While Not rs.Eof And I>0 '循环直到当前页结束或记录集结尾
I=I-1
Response.Writers(―bookname")& "<br>" '输出姓名字段值
rs.MoveNext
Loop
%>
1、确定是否指向记录集的 BOF或者 EOF
2,确定是否已提取了 5条
显示纪录
第 6章 ASP数据库编程
? 其它
打印页码时,当前页面的页码和非当前页面的页码的区别:
当前页面的页码不加超链接;非当前页面的页码加上超链接。
<%
For I=1 To rs.PageCount
If I=Page_no Then
Response.Write I //打印页码 I
Else
Response.Write "<a href='9-8.asp?page_no="& I & "'>" & I & "</a>"
Next
%>
第 6章 ASP数据库编程
6.2.4.6 利用 Recordset对象更新数据库
建立 Connection对象
建立 Recordset对象
第 6章 ASP数据库编程
Set db=Server.CreateObject("ADODB.Connection")
db.Open "DSN=addr" '这里利用数据源连接
Set rs=Server.CreateObject("ADODB.Recordset")
strSql ="Select * From users"
rs.Open strSql,db,0,2 '注意参数,锁定类型为可以修改
利用 Recordset对象更新数据库 - 添加记录
Dim fields(2),values(2)
fields(0)="name"
fields(1)="Tel"
fields(2)="email"
values(0)="李玫 "
values(1)="88888888"
values(2)="limei@263.net"
rs.AddNew fields,values
rs.Update
第 6章 ASP数据库编程
更新记录(修改李玫的电话号码)
删除记录,删除李玫的记录
关闭 Connection对象
利用 Recordset对象更新数据库
第 6章 ASP数据库编程
Dim fields2(0),values2(0)
fields2(0)="tel"
values2(0)="66666666"
rs.Update fields2,values2
rs.Delete
rs.Update
db.Close
Set db=nothing
6.2.4.7 Field对象和 Fields集合
Field对象,fields.count
2,Fields集合的方法,只有一个 item方法,建立某个
field对象,语法为:
Set field对象 =recordset对象,fields.item(字段名或字段索引值 )
3.field对象的属性:最有用的属性是 value,获取数据库
的字段值,语法为,field对象,value
4,Field对象的方法只有一个 appendchunk,用于在当前
数据末尾添加数据,语法为,field对象,appendchunk data
1,Field集合的属性:只有 count属性,返回记录集中
字段( field对象)的个数,语法为:
第 6章 ASP数据库编程
6.2.5 存取 SQL Server数据库
已知:建立 SQL数据库 sqltest,登录帐号 tt,密码 11,
ODBC数据源名称为 test。 连接方法如下:
创建没有 ODBC数据源的连接
创建有 ODBC数据源的连接
创建基于 OLE DB的连接
Set db=server.createobject(―adodb.connection‖)
Db.open ―dsn=test;uid=tt;pwd=11‖
Set db=server.createobject(―adodb.connection‖)
Db.open ―provider=SQLOLEDB;server=localhost;database=sqltest; ‖&_
‖ uid=tt;pwd=11; driver={sql server}‖
第 6章 ASP数据库编程
Set db=server.createobject(―adodb.connection‖)
Db.open ―server=localhost;database=sqltest;uid=tt;pwd=11;driver={sqlserver}‖
6.2.6 对多个表进行组合查询
连接数据库进行查询同对单个表进行查询,
组合查询只是数据库连接语句不同,举例:
表 users包含序号、用户名、密码、真实姓名、电子邮箱、注册时间,表
daylog包含用户名、登录时间、登录 ip。 现在要从 users中选取真实姓名,
从 daylog中选取登录时间和登录 ip。 Sql语句的写法是:
Strsql=―select users.realname,daylog.log_date,daylog_ip from‖&_
‖users,daylog where users.user_name=daylog.user_name‖
第 6章 ASP数据库编程
文件存取组件
广告轮显组件
浏览器兼容组件
文件超链接组件
计数器组件
发送 E-mail组件 W3 Jmail
文件上传组件 ASPUpload
第 7章 文件存取组件及其它组
文件存取组件
文件存取组件常用对象列表
参数 说明
FileSystemObject 几乎包含处理文件和文件夹的所有方法
TextStream 主要用于存取文本文件
File 此对象的方法和属性可以处理单个文件
Folder 此对象的方法和属性可以处理文件夹
FileSystemObject对象的方法
方法 说明
CreatTextFile 新建一个文本文件
OpenTextFile 打开一个已有的文本文件
GetFile 返回一个 file对象
CopyFile 复制文件
MoveFile 移动文件
DeleteFile 删除文件
FileExists 判断文件是否存在
GetFileName 返回一个指定文件的主文件名
GetExtensionName 返回一个指定文件的扩展名
方法 说明
GetFileName 返回一个指定文件的完整的文件名
GetFolder 返回一个 folder对象
CreateFolder 创建一个文件夹
CopyFolder 复制一个文件夹
MoveFolder 移动一个文件夹
DeleteFolder 删除一个文件夹
FolderExists 判断文件夹是否存在
GetParentFolderName 返回上一级文件夹名
GetExtensionName 返回一个指定文件的扩展名
FileSystemObject对象的方法 (续)
方法 说明 语法
Close 关闭一个已打开的数据文件 TextStream对象,close()
Read 从光标的当前位臵开始从打开的文本文件中读取
一定的字符数目
TextStream对象,read(charnum)
Readall 读取一个已打开的数据流文件内的所有数据 String=textstream对象,readall
返回一字符串
Readline 读取一个已打开的数据流文件的一行数据 String= TextStream对象,readline
Skip 跳过已打开的数据流文件内的字符数目 TextStream对象,skip(字符数目 )
Skipline 跳过一个已打开的数据流文件的一行数据 TextStream对象,skipline
Write 写入数据到一已打开的数据流文件 TextStream对象,write(string)
Writeline 写入数据到一已打开的数据流文件内的一整行数
据
TextStream对象,writeline(string)
writeblankline 指定欲写入的新行数目 TextStream对象,
Writeblankline(lines)
TextStream对象的属性和方法
TextStream对象的属性
属性 说明 语法
Atendofline 当光标位于当前行的末尾时,其值为true,否则 false TextStream对象, Atendofline
Atendofstream 当光标位于文件的末尾时,其值为 true,否则 false TextStream对象, Atendofstream
Column 计算从行首到当前光标位臵的字符数 TextStream对象, Column
Line 计算光标所在行在整个文件中的行号 TextStream对象, Line
文本文件的基本操作
文本文件的读取和添加
Set FileSystem对象实例
=server.createobject(―scripting.filesystemobject‖)
Set textstream对象实例
= FileSystem对象实例,createtextfile(filename[,overwrite])说明,filename指定欲建立的文件名称及其路径
Overwrite在建立文件时,如果存在同名的文件是否允许覆盖
True为允许,false不允许,默认 false
Set textstream对象
=filesystem对
象,opentextfile(filename[,[iomode],[overwrite] ])
新建文本文件
文件及文件夹的基本操作
文件的复制、移动和删除
复制,FileSystemObject对象实例,copy 源文件,目标文件 [,overwrite]
移动,FileSystemObject对象实例,movefile 源文件,目标文件
删除,FileSystemObject对象实例,deletefile文件
说明:
复制时,overwrite为 true时,表示可以覆盖,否则不可以,默认为 true
移动时,如果目标文件存在会报错
复制、移动和删除都可以使用通配符
判断文件是否存在返回 true或 false
说明:
复制时,overwrite为 true时,表示可以覆盖,否则不可以,默认为 true
移动时,如果目标文件存在会报错
复制、移动和删除都可以使用通配符
判断文件是夹否存在返回 true或 false
文件及文件夹的基本操作
文件夹的新建、复制、移动和删除
新建,FileSystemObject对象实例,createfolder文件夹
复制,FileSystemObject对象实例,copy 源文件夹,目标文件夹
[,overwrite]
移动,FileSystemObject对象实例,movefile 源文件夹,目标文件夹
删除,FileSystemObject对象实例,deletefile文件夹
文件夹是否存在,FileSystemObject对象实例,folderexists(文件夹 )
Folder对象的属性和方法
属性 说明
Attributes 返回文件夹属性
Datecreated 返回该文件夹的创建日期和时间
Datelastaccessed 返回最后一次访问该文件夹的日期和时间
Datelastmodified 返回最后一次修改该文件夹的日期和时间
Drive 返回该文件夹对应的驱动器字母
Files 返回文件夹中所有的文件
Name 设定或返回文件夹的名字
Isrootfolder 返回一个布尔值说明该文件夹是否是当前驱动器
的根文件夹
Parentfolder 返回该文件夹的父文件夹对应的 folder对象
Path 返回该文件夹的绝对路径
Size 返回指定文件夹的大小
Subfolders 返回文件夹中所有的子文件夹
广告轮显组件
属性 说明 语法
Border 确定广告图片的边框
宽度
Ad.border=size
Size为正整数值,表示边框大小
Clickable 确定该广告图片是否
提供超链接功能
ad.clickable=boolean
Boolean为 true表示提供超链接,否则不提
供
targerframe 确定超链接的 web页
面
Ad.targetframe=―target=?targetname‘‖
Targetname,超链接的窗口或框架名称
getadvertisement 取得广告信息文件 Ad.getadvertisement(广告信息文件路径
字符串 )
广告轮显组件的属性和方法
广告轮显组件
方法 说明 语法
Border 确定广告图片
的边框宽度
Ad.border=size
Size为正整数值,表示边框大小
Clickable 确定该广告图
片是否提供超
链接功能
ad.clickable=boolean
Boolean为 true表示提供超链接,否则不提供
targerframe 确定超链接的
web页面
Ad.targetframe=―target=?targetname‘‖
Targetname,超链接的窗口或框架名称
广告轮显组件的方法
使用广告轮显组件示例
使用该组件需要 3个文件
广告信息文本文件:记录所有广告信息的文本文件
超链接处理文件:引导客户到相应广告网页的 asp文件
显示广告图片文件:放臵广告图片的文件,比如个人主页首页
举例说明
建立广告信息文本文件
建立超链接处理文件
建立显示广告图片文件
点击链接查看代码示例
浏览器兼容组件
浏览器兼容组件的工作原理
浏览器兼容组件的属性
使用浏览器兼容组件示例
浏览器兼容组件的工作原理
客户端连接到服务器端
发出请求,包含一个 user_agent页眉,该页眉包含客户端
浏览器的种类及版本信息
浏览器兼容组件把页眉信息欲一个名为 browscap.ini的文
件匹配,browscap.ini位于服务器上
浏览器兼容组件找到相互匹配的浏览器时,就家丁所有客
户端浏览器性质和该文件所记录的一致
浏览器兼容组件找不到相互匹配的浏览器时,则自动执行
browscap.ini内所设定的默认浏览器信息
从网站 http:/www.cyscape.com/browscap可下载最新的
browscap.ini
浏览器兼容组件的属性
属性 说明
Browser 浏览器类型名称
Version 浏览器版本名称
Majorver 浏览器主版本
Minorver 浏览器次版本
Frames 是否支持框架功能
Tables 是否支持表格功能
Cookies 是否支持 cookies
Backgroundsounds 是否支持背景音乐
Vbscript 是否支持 vbscript
Javascript 是否支持 Javascript
Javaapplets 是否支持 Java小程序
Acrivexcontrols 是否支持 Acrivexcontrols控件
使用浏览器兼容组件示例
语法:
Set 对象实例 =server.createobject(―MSWC.BrowserType‖)
对象实例,属性
显示客户端浏览器特性示例
文件超链接组件
文件超链接组件的方法
使用文件超链接组件示例
文件超链接组件的方法
方法 语法 说明
Getlistcount N=对象实例,getlistcount(string) 得到文件中包含的超链接址数
Getlistindex N=对象实例, Getlistindex (string) 显示当前页在这些链接地址中的
位臵
getnexturl data=对象实例, getnexturl(string) 显示链接文件中下个文件的地址
getpreviousurl data =对象实例,
getpreviousurl(string)
显示链接文件中上个文件的地址
getnextdescription data =对象实例,
getnextdescription(string)
显示链接文件中下地址的描述
getpreviousdescripti
on
data =对象实例,
getpreviousdescription(string)
显示链接文件中上地址的描述
getnthurl data =对象实例,
getnthurl(string,index)
显示链接文件中第 n文件地址
Getnthdescription data =对象实例,
Getnthdescription(string,index)
显示链接文件中第 n文件描述
使用文件超链接组件示例
使用该组件需要两个文件
超链接数据文件:关于 web站点网址、其他文件的数据文件,是
一个文本文件
显示超链接文件:即显示超链接的文件
举例说明:
建立超链接数据文件
建立显示文件
计数器组件
属性 /方法 说明
Hits(page) 返回指定 page的访问次数,如 page省略,则返回当前页访问次数
Pagehit() 增加当前网页的访问次数
Reset(page) 设臵由 page指定的网页的访问次数为 0
使用计数器组件示例
计数器组件的属性和方法
发送 E-mail组件 W3 Jmail
下载和安装 W3 Jmail组件,免费下载网址:
http://www.dimac.net/FreeDownloads/FreeDownloadsstart.asp
下载后根据向导安装即可
使用 W3 Jmail组件发送邮件
使用第三方组件
属性方法 功能 属性方法 功能
From 发件人 email地址 Subject 邮件主题
Fromname 发件人姓名 Body 邮件内容
addrecipient 添加收件人 email地址 addattachment 添加附件
Send 执行发送 Close 关闭对象
Version W3 Jmail的版本号
常用语句:
<%
Set jmail=server.createobject(―jmail.message‖) ?建立一个组件实例
Jmail.addrecipient yuezy@263.net ?第一个收件人
Jmail.addrecipient jjshang@gse.pku.edu.cn ?第二个收件人
…… ’
可以再加收件人
Jmail.from=jjshang99@163.com ?发件人地址
Jmail.fromname=―尚俊杰 ? ‘ 发件人姓名
Jmail.subject=―你好 ? ‘ 发件人主
题
Jmail.body=―测试发信组件 ? ‘ 信件内容
Jmail.addattachment ―c:\my documents\test.txt‖ ‘附件
Jmail.send(―smtp.163.com‖) ?执行发送,括号中是发信服务器
Jmail.close ?发送完毕,关闭该对象
%>
具体例子源代码
文件上传组件 ASPUpload
下载和安装 ASPUpload组件
下载地址是,http://www.persits.com/aspupload.asp
安装时根据向导安装即可
使用 ASPUpload组件上传文件
上传组件的属性
属性设臵 功能
Overwritefiles 能否覆盖文件。 Boolean默认为 true,表示可以覆盖
方法 功能
Save 保存文件到某文件夹
Files 获取上传文件对象的方法
Form 获取上传表单元素的方法
Setmaxsize 设臵上传文件最大字节数
上传组件的方法
上传文件的属性
属性 功能
Name 上传表单中的表单元素的名字
Filename 上传文件的名字
Path 上传后文件的路径
Size 上传后文件的大小(字节数)
上传文件示例
上传文件表单文件源代码
上传单个文件执行程序源代码
上传多个文件表单源代码
上传多个文件执行文件源代码
课程情况总体简介
授课学时, 80学时
课程性质, 网站设计专业的一门 主干 专业技术课,是一门 实践
性、综合性 很强的课程。
课程任务, 1.了解 动态网站的规律;
2.认识 动态网站设计的 方法,动态网站的 典型结
构,动态网站构建的 方法与手段;
3.掌握 动态网站的 设计方法,动态网站构建的方
法 ;
4.具备 进行中等复杂 动态网站的设计 能力与构建
能力。
总目录
第一章 网络程序设计概述
第二章 ASP初步
第三章 ASP脚本语言 -VBScript
第四章 ASP常用内部对象
第五章 数据库基础知识
第六章 ASP数据库编程
第七章 文件存取组件及其它组件
第八章 网络程序开发实例
内容简介:
第一章 网络程序设计概述
本章讲述网络程序设计的一些基础知识
涉及WWW、服务器端、客户端概念,静态网页工作原理和
动态网页工作原理;常见网络程序设计语言及工作原理、选用原
则;动态网站基本原理和规律等 。
学习目的与要求:
1,掌握服务器端, 客户端概念, 静态与动态网页分类;
2,认识常见网络程序设计语言, 掌握选用原则;
3,掌握 静态网页工作原理和动态网页工作原理;
4,了解ASP与PHP的异同;
5,了解 ASP与JSP的异同 。
重点:
静态网页、动态网页基本概念、静态网站工作原理、动态网
站工作原理、网络程序设计语言及选用。
难点:
PHP的要点和JSP要领及其应用。
1.1 网络程序设计语言的产生背景
为了资源的共享,人类创建了计算机网络,进入20世纪90年
代以来,Internet发展迅猛,目前提供的服务主要是:WWW、EMA
IL、FTP、新闻组,Telnet,电子商务等服务。
最初的WWW网页主要用来呈现一些静态信息,一般用超文本标
记语言HTML来实现,以提供信息资源为主。
1.1 网络程序设计语言的产生背景
随着网络技术的快速发展,远程教育、电子商务、电子政务等网
上应用蓬勃发展,这就要求WWW不仅可以显示有关信息,而且可以实
现网上交流、网上办公。在这样的背景下,网络程序设计语言应运而生。
第一章 网络程序设计概述
1.2 WWW的工作原理
1.2.1 什么是服务器端、客户端
凡是提供服务的一方称为服务器端,而接受服务的一方称为客户
端。比如:当我们浏览四川电院主页时,四川电院所在的服务器称为服
务器端,而我们自己的计算机就称为客户端,如图1-1所示。
而服务器端和客户端的根本含义是:它们是二种不同的角色。服务
器端:提供服务,客户端:接受服务。
这二种角色即可以由不同的计算机充当,也可以由一台计算机
充当。
1.2.2 静态网页的工作原理
所谓静态网页,就是说该网页文件里没有程序代码,只有HTML
标记,这种网页一般以后缀,htm 或,html存放。静态网页一旦制成,内容
就不会变化,如果要修改有关内容,就必须修改源代码。
静态网页的工作原理为:当你在浏览器里输入一个网址回车后,就
向服务器端提出了一个浏览网页的请求,服务器端接到请求后,就会找
到你要浏览的静态网页文件,然后发送给浏览器,由浏览器把内容展示
出来。
静态网页的工作原理图为1-2所示。
1.2.3 动态网页的工作原理
所谓动态网页,就是该网页文件不仅含有HTML标记,而且
含有程序代码,这种网页的后缀一般根据不同的程序设计语言而不同,
如ASP文件的后缀为,asp。 动态网页能够根据不同的时间、不同的来
访者而显示不同的内容。
动态网页的工作原理:当你在浏览器里输入一个动态网页网址
回车后,就向服务器提出了一个浏览网页的请求,服务器接到请求后,
首先会找到你要浏览的动态网页文件,然后就执行网页文件中的程序
代码,将执行结果转化为标准的静态网页,然后将静态网页发送给浏
览器。其原理图为1-3所示:
1.3 目前主要的网络程序设计语言
目前,主要有ASP、PHP、JSP程序设计语言。ASP、
PHP和JSP基本上都是把脚本语言嵌入HTML文档中。它们最
主要的优点是:ASP学习简单,使用方便 ; PHP软件免费 ;JSP多
平台支持,转换方便。
1.3.1 ASP概述
ASP全称 Active Server Pages,是微软推出的用以取代CGI
( Common Gateway Interface)的动态服务器网页技术。
ASP目前可在 Windows NT,Windows 2000,Windows XP上运
行,在 Windows 98上装上个人 Web服务器PWS(P ersonal Web Server)
后也可以运行。它对客户端没有任何特殊的要求,只要有一个普通的
浏览器就行。
ASP文件就是在普通的HTML文件中嵌入VBS cript或 JavaScRipt
脚本语言。
ASP提供了常用内部对象和内部组件,利用它们可以很方便地
实现表单上传、存取数据库等功能。
ASP的优缺点概括如下:
1、ASP的优点
(1)ASP所使用的 VBScript脚本语言直接来源于VB语言,
简单易学。
(2)把脚本语言直接嵌入HTML文档中,不需要编译和连接
就可以直接解释运行。
(3)利用ADO组件轻松存取数据库。
(4)面向对象编程
2、ASP的缺点
(1)运行速度较慢
服务器每次都必须将客户端打开的ASP网页从头到尾重读
一遍,并加以解释执行
(2)有的网络操作系统不支持ASP
1.3.2 PHP概述
PHP开始是一个用 Perl语言编写的程序。
PHP程序可以运行在UNIX,LINUX或WINDOWS
操作系统下,对客户端浏览器也没有特殊要求,但其运行环境安装比较
复杂。PHP、MYSQL数据库和AP ache Web服务器是一个比较好
的组合。
PHP的优缺点概括如下:
1、优点
(1)免费
(2)开放源码,所有的源码和文档都可以免费复制、编译和传
播。
(3)多平台支持
(4)效率高,同ASP相比,PHP占用系统资源较少,执行
速度较快
2、缺点
(1)运行环境安装相对复杂
(2)相对于ASP来说,学习可能稍微复杂些
(3)没有营业性大公司的支持
1.3.3 JSP概述
JSP的全称是 Java Server Pages,它是由SUN公司提出,多家
公司合作建立的一种动态网页技术。其目的是整合已经存在的 Java编程
环境。
JSP的最大优点是开放的、跨平台的结构。它可以运行在几乎
所有的服务器系统上,包括WINDOWS NT、WINDOWS
2000、UNIX、LINUX、WINDOWS 98等。JSP
也是在服务器端运行的,对客户端浏览器要求很低。
JSP就是将 Java程序片段和JSP标记嵌入普通的HTML文
档中。当客户端第一次请求JSP文件时,该文件将被编译成 Servlet 并
由 java虚拟机执行,以后就不用再编译了,提高了执行效率。
JSP的优缺点概括如下:
1、优点
(1)支持多平台
(2)编译后执行,能够大大提高执行效率
(3)JSP采用 Java技术
2、缺点
(1)开发运行环境相对于ASP来说,稍显复杂
(2)相对于ASP的脚本语言,Java语言学起来稍微难些。
1.4 本章小结
ASP、PHP、JSP各有优缺点,但编程语言的思想则大同
小异,只要掌握了一门编程语言,就可以达到触类旁通、举一反三的
效果。
而ASP是微软的产品,与目前普遍使用的WINDOWS系统
和IE浏览器相容,且有微软的强大支持。而且,ASP所使用的V
BSCRIPT脚本语言直接来源于VB语言,简单易学,目前AS
P网上各种资源也非常丰富,这些都给使用ASP带来了极大的方便。
第二章 ASP初步内容简介:
本章讲述ASP的一些基础知识
涉及服务器端、客户端、操作系统概念,ASP的运行环境,
IIS的安装及调试,ASP文件的浏览,默认文档的设置,制
作一个简单的ASP文件,ASP的语法简介及开发ASP程序
时的注意事项等 。
学习目的与要求:
1,掌握IIS的安装及调试;
2,认识常见开发ASP程序的注意事项;
3,掌握ASP文件的组成及制作过程 ;
4,了解ASP的开发工具;
5,了解 ASP的运行环境 。
重点:
难点:
ASP的运行环境、IIS的安装、ASP文件的构成及制
作、ASP文件的简单语法。
开发ASP程序时的注意事项
2.1 ASP的运行环境
服务器端运行环境可作如下选择:
(1) Windows 2000 + IIS5.0(Internet 信息服务管理器 5.0)
(2) Windows XP + IIS5.0(Internet 信息服务管理器 5.0)
(3) Windows 98 +PWS4.0(Personal Web Server 4.0)
(4) Windows NT4.0 + Windows NT Option Pack
客户端:只要是普通的浏览器即可
本书讲述主要以在W indows 2000系统上调试和运行 ASP为主。
2.1.1 安装IIS5,0
如果是W indows 2000 Server 或者 Windows 2000 Advance
Server版本,一般已经自动安装了IIS。
如果是 Windows 2000 Professional版本,则需要自己安装IIS管理器,
安装方法如下:
依次选择【开始】【设置】【控制面板】【添加 /删除程序】命令,在
【添加 /删除程序】对话框中选择【添加 /删除 Windows组件】按钮,就
会弹出如图 2-1所示的,Windows组件向导”对话框,在其中选择
,Internet信息服务(IIS)”,然后单击【下一步】按钮,以后根据
提示一步步安装即可。
安装完毕后,在IE浏览器中输入 http://localhost,如果能显示IIS欢
迎字样,就表示安装成功。
安装成功后,依次选择【开始】 【程序】 【管理工具】 【 Internet服
务管理器】菜单命令,就会出现如图 2-2所示的【 Internet 信息服务】窗
口。
在图 2-2中左侧选择“默认 Web站点”,右边显示的是
,C:\inetpub\wwwroot‖中的内容。该文件夹是默认的WWW主目录,是
IIS安装过程中自动生成的,一般情况下,大家制作的网页文件都可
以存放在该文件夹或该文件夹的子文件夹中。
2.1.2 浏览ASP文件
默认的WWW主目录是,C:\inetput\wwwroot”,现在把任意一个A
SP文件(如 wyl.asp) 复制到该文件夹下,就可以通过如下方法访问
该文件:
(1)http://localhost/wyl.asp
(2)http://127.0.0.1/wyl.asp
(3)http://您的计算机的名字 /wyl.asp
(4)http://您的计算机的IP地址 /wyl.asp
注意:前3种方法一般指的是在自己的计算机上访问自己的ASP文
件,第4种方法指的是别人通过 Internet访问您的ASP文件(前提:
你的计算机必须连入 Internet且别人知道你的IP地址)。
2.1.3 添加虚拟目录
如果要开发不同内容的网站,可在磁盘上建立一个自己的文件夹,
并将自己制作的网页存放在此文件夹中,然后建立一个虚拟目录,并将
它与自己的文件夹相关联。如创建一个 aspjpkc文件夹,再添加虚拟目
录,其过程如下:
在图2-2中对准“默认WEB站点”单击鼠标右键,在快捷菜单中选
择 【新建】【虚拟目录】命令,然后按提示执行,如图 2-3添加别名
,infasp‖,如图 2-4选择对应文件夹 aspjpkc,最后完成即可。
设置虚拟目录后,就可以在IE浏览器中输入
http://localhost/infasp/wyl.asp来访问。
注意,infasp是虚拟目录的名字,它是一个别名,可以随便命名。但初
学者,虚拟目录别名和文件夹名尽量一致,这样不易混淆。
2.1.4 设置默认文档
默认文档的作用是:如果在浏览器地址栏里输入
http://localhost/infasp,并没有输入哪个网页文件的名字,系统就会
自动按默认文档的顺序在 infasp里查找,找到后就显示。如按照图2-
5中默认文档的设置,首先去找 index.asp,如果找不到就去找
index.htm。
设置方法如下:鼠标右击虚拟目录 infasp,在弹出的快捷菜单中选择
【属性】命令,在其中添加 index.asp,index.htm等默认文档
后确定即可。
2.2 ASP的开发工具
开发ASP文件,最好的工具是 Microsoft Visual InterDev,利
用它不仅可以编写还可以调试,而且可以多人合作开发,开发大型的
Web程序最好使用它。
初学者可使用记事本,FrontPage等任何文本编辑器,编写完毕
后,保存时扩展名为 asp的文件即可。
也可使用 EditPlus(下载网址,http://www.editplus.com),它可
以将ASP脚本语言与HTML语言分颜色显示,并可帮助编写复杂的
HTML语句。
2.3 制作一个简单的ASP文件
该例子的功能是显示来访日期和时间
2.3.1 新建ASP文件
打开 EditPlus,然后在菜单栏中依次选择【 File】 【 New】
【 HTML Page】 菜单命令之后,输入程序代码,如:代码清单 2-1中
的全部代码
<html>
<head>
<title>一个简单的 ASP程序 </title>
</head>
<body>
<H2 align="center">欢迎您光临我的主页 </H2>
<p align="center">
<%
n=Year(date())
y=Month(date())
r=Day(date())
sj="您来访的时间是," & n & "年 " & y & "月 " & r & "日 "
Response.Write sj '输出结果
%>
</body>
</html>
2.3.2 保存ASP文件
输入完毕后,依次选择 【F ile】 【 Save】,该文件命名为
2-1.asp,保存在 aspjpkc\chapter2文件夹中,然后单击【保存】按钮即可。
2.3.3 浏览ASP文件
打开浏览器,在地址栏中输入
http://localhost/infasp/chapter2/2-1.asp,按回车键后,程序运行结
果如图所示。显示的时间就是服务器端的当前时间。
在图中单击鼠标右键,在弹出的快捷菜单中选择 【查看源文件】
菜单命令,就会出现如图所示的源代码。可以看出,发送到客户端的文
件是经过解释执行的文件,程序代码执行后的结果已经转化为标准的H
TML标记文件。
2.4 ASP的语法简介
ASP文件就是在标准的HTML页面中嵌入了 VBScript代码或
JavaScript后形成的,而 <%与 %>符号之间的内容就是 VBScript或
JavaScript代码。
2.4.1 ASP文件的基本组成
一个简单的ASP文件可以包括以下3个部分。
1、普通的HTML文件
2、服务器端的脚本程序代码:位于 <%与 %>内的程序代码
3、客户端的脚本程序代码:位于 <Script>…</Script> 内的程序
代码。
2.4.2 ASP文件的约定
1、所有的脚本程序代码均须放在 <%与 %>符号之间(仅有
Global.asa文件例外)。
2、在ASP里面,VBScript是默认的脚本语言,如果在A
SP网页中使用其他的脚本语言,可以用以下的方法切换:
<%@Language=VBScript%>脚本语言为 VBScript
或
<%@Language=JavaScript%>脚本语言为 JavaScript
3,默认为 VBScript
2.5 开发ASP程序时的注意事项
1、在ASP程序中,字母不分大小写
2、在ASP中,凡是用到标点符号的,都是在英文输入状态
下的标点符号,否则将出错。但在字符中使用的标点符号除外。
3、普通的HTML元素可以在一行里连着写,而ASP语句
必须分行写。
4、在ASP中,<%和 %>的位置是相对随便的
5、养成良好的书写习惯
6、在ASP源程序中,可以包含HTML语言,两者是很好
地结合在一起的。在编写ASP网页时,可充分利用 HTML编程工具来
编写复杂的HTML,然后再将脚本插入到HTML中,以提高效率。
第3章 ASP脚本语言 -VBScript内容简介:
本章讲述ASP脚本语言知识
涉及数据类型、常量、变量、数组、函数概念,有关数据类
型及其取值范围、常量与变量声明、数组定义及应用、函数定义
及应用等 。
学习目的与要求:
1,掌握常量, 变量, 条件语句, 循环语句;
2,认识常见语句出错信息;
3,掌握数组, 函数的定义及应用 ;
4,了解注释语句;
5,了解容错语句 。
重点:
难点:
常量、变量,条件语句、循环语句,数组、函数
数组、函数
3.1 脚本语言概述
脚本语言是一种介于HTML语言和 Visual Basic,Java等高级
语言之间的一种语言。
ASP程序中常用的脚本语言有 VBScript和 JavaScript等语言,
默认语言为 VBScript语言。
VBScript直接来源于VB( Visaul Basic)语言.
脚本程序既可以在客户端执行,也可以在服务器端执行,一般A
SP程序中的 VBScript语言都是放在服务器端执行的.
3.2 VBScript代码的基本格式
VBScript语言在服务器端执行有两种方法:
方法一,<% VBScript代码 %>
方法二,<Script Languge=―VBScript‖ Runat=―Server‖>
VBScript代码
</Script>
一般情况下,使用方法一
也可以将 VBScript代码放在客户端执行,其语法形式为:
<Script Languge=―VBScript‖>
VBScript 代码
</Script>
3.3 VBScript的数据类型
在 VBScript中只有一种数据类型,称为 Variant,也叫做变体类型,
它是一种特殊的数据类型,根据不同的使用方式,它可以包含不同的数
据类别信息.
3.4 VBScript常量
常量就是拥有固定的数值,它可以代表字符串, 数字和日期等常
数,常量一经声明,其值将不能再更改.
声明常量可以使用 Const语句,示例:
<%
Const PI=3.1415926
Const name_wyl=,王益亮”
%>
常量的命名规则和变量一样,不能使用关键字.
常量的作用域由声明它的位置决定.
3.5 VBScript变量
变量就是存储在内存中的用来包含数据的地址的名字.
声明变量可以使用 Dim语句,示例:
<%
dim name,age,sex
%>
如果希望强行要求所有的变量都预先声明,则在ASP文件中
所有的ASP语句之前添加 Option Explicit语句.
变量的命名规则和作用域同常量.
3.6 VBScript数组
数组就是存储在内存中的用来包含数据的一组地址的名字.
数组的命名、声明,赋值和引用与变量基本上一样,不同的是要声明
数组中的元素个数即长度.
示例:
<%
Dim sum
Dim num(3) ?声明一个元素个数为4的数组
num(0)=1 ?给第一个数组变量赋值
num(1)=2 ?给第二个数组变量赋值
sum=num(0)+num(1) ?引用数组变量,将其和赋值给 sum变量
%>
数组的下标从0开始.
可以声明一个变长数组,或称为动态数组.
如,<%dim name() %>
3.7 VBScript运算符
运算符包括算术运算符,比较运算符、逻辑运算符和连接运算
符.
运算符的优先顺序:算术运算符 连接运算符 比较运算符
逻辑运算符.
3.8 VBScript函数
3.8.1 转换函数
使用转换函数可以强制转换数据的子类型.
3.8.2 字符串函数
可以使用字符串函数对字符串进行截头去尾和大小写转换等操
作.
示例:
<%
str=mid(―this is a good book‖,11,4) ?从中间第 11个位置开始取4个字符,
返回 good
str=trim(― good luck ‖) ?去掉两边空格,返回 good luck
str=ucase(―wyl‖) ?将小写转换成大写,返回 WYL
num=instr(―good luck to you‖,‖l‖) ?返回第2个字符串在第1个字符串中
第一次出现的位置,返回6
%>
3.8.3 日期和时间函数
可以使用日期和时间函数来得到各种格式的日期和时间.
如,Now()取得系统当前的日期和时间
Date()取得系统当前的日期
3.8.4 数学函数
使用数学函数来完成数学运算.
如,abs(x)求 x的绝对值,sqr(x)求 x的平方根
3.8.5 检验函数
用来检验某变量是否是某种类型.
如,isnumeric(x)检查变量 x是否为数值类型
注意:函数的参数个数和类型
3.9 VBScript过程
在 VBScript中,过程有两种,Sub子程序和 Function函数,两者的
区别在于,Sub子程序只执行程序而不返回值,而 Function函数可以将执
行代码后的结果返回给请求程序.
3.9.1 Sub子程序
声明 Sub子程序的语法:
Sub 子程序名(参数1,参数2,...)
...
E nd
或
Sub 子程序名()
...
End
S ub过程的调用方式:
1.使用 Call语句
Call 子程序名(参数1,参数2,...)
2,不使用 Call语句
子程序名 参数1,参数2,...
示例:求 a和 b的立方和
<%option explicit%>
<html>
<head>
<title>求 a和 b的立方和 </title>
</head>
<body>
<%dim m,n
m=3
n=4
call cube(m,n)
‘下面是子程序,用来计算 a 和 b的立方和
Sub cube(a,b)
dim sum
sum=a^3+b^3
response.write ―a 和 b 的立方和是:” &cstr(sum)
End sub
%>
</body>
</html>
说明:
1,M,n是实际参数,而过程中的 a,b是形式参数,运行过程中,由实
际参数将具体数值传给形式参数
2.实参和形参位置和类型要一致
3.实参可以是常数 变量和表达式
4.变量的作用域,m,n在整个ASP文件内有效,而 sum则只在过程
内使用,在过程外是无效的.
3.9.2 Function函数
Function函数的语法,
Function 函数名 (参数 1,参数 2,?)
?
End Function
或
Function 函数名 ()
…
End Function
如果 Function过程无任何参数,则 Function语句必须使用空括号, 与 sub过程
不同的是,Function过程通过函数名返回一个值,这个值是在过程的语句中
赋给函数名的,Function返回值的数据类型是 Variant.
Function过程的调用方式只有一种,即通过直接引用函数名实现函数的
调用,而且函数名必须用在变量赋值语句的右端或表达式中,
示例,用函数来计算两个数的立方
<% Option Explicit '放在程序首行,强制变量声明 %>
<html>
<head>
<title> Function函数用法示例 </title>
</head>
<body>
<%
'下面是函数,用来计算两个数的立方
Function CountSum(a,b)
'由于 a,b为形式参数,在函数被调用时,其值由实际参数给出,
'所以此处不能再定义
CountSum=a^3+b^3
End Function
Dim Result
Result=CountSum(5,9) '调用函数,计算 5和 9的立方和
Response.write "5和 9的立方和等于 "& Cstr(Result) '显示结果
%>
</body>
</html>
3.9.3 子程序和函数的位置
子程序和函数可以放在 ASP文件的任意位置上,也可以放在另外一个
ASP文件中,
3.10 使用条件语句
使用条件语句对用户输入的信息进行判断,
3.10.1 If? Then? Else语句
语法形式如下,
1.If?Then?End if
If 条件 Then
执行语句
End If
2,If…Then…Else…End if ( 单条件 )
If 条件 Then
执行语句 1
Else
执行语句 2
End If
3,If…Then…Else…End if ( 多条件 )
If 条件 1 Then
执行语句 1
ElseIf 条件 2 Then
执行语句 2
…
End If
条件语句示例:
<% Option Explicit '放在程序首行,强制变量声明 %>
<html>
<head>
<title> If…Then…Else 语句用法示例 </title>
</head>
<body>
<%
Dim Grade
Grade=86 '这里为了简单,直接赋值了,一般来说应该是
传过来的参数,比如从数据库中读出,或由程序计算得出。
If Grade>=85 Then
Response.write "太不可思议了,你太厉害了 "
Elseif Grade>=70 and Grade<85 Then
Response.write "不错啊,继续努力吧 "
Elseif Grade>=60 and Grade<70 Then
Response.write "有点差,还需努力 "
Else
Response.write "我无话可说 "
End if
%>
</body>
</html>
3.10.2 Select Case 语句
对多个条件进行判定的另一种形式
Select Case 变量或表达式
Case 结果 1
执行语句 1
Case 结果 2
执行语句 2
?
Case 结果 n
执行语句 n
Case Else
执行语句 n+1
End Select
说明, 首先对表达式进行运算,然后,将运算结果依次与结果 1到结果 n作比
较,当找到与计算结果相等的结果时就执行该执行语句,执行完毕就跳出
Select Case条件式,当运算结果与所有的结果都不相等时,就执行 Case Else
后面的执行语句 n+1.
示例,<% Option Explicit %>
<html>
<head>
<title> Select Case 语句用法示例 </title>
</head>
<body>
<% Dim Grade
Grade="D" '这里为了简单,直接赋值了,一般来说应
该是传过来的参数,比如从数据库中读出
Select Case Grade
Case "A"
Response.write "太不可思议了,你太厉害了 "
Case "B"
Response.write "不错啊,继续努力吧 "
Case "C"
Response.write "有点差,还需努力 "
Case ELse
Response.write "我无话可说 "
End Select
%>
</body>
</html>
3.11 使用循环语句
对于重复的操作,使用循环语句进行描述,
常用的循环语句有,For?Next,Do?Loop 等
3.11.1 For? Next循环
语法,
For counter=start To end [Step number]
执行语句
Next
各参数说明如下,
counter:循环的计数器变量
start:计数器的初始值 end:计数器的终值
Step number:计数器的步长,缺省时为 1
示例,
<% Option Explicit %>
<html>
<head>
<title> For…Next 循环语句用法示例 </title>
</head>
<body>
<%
Dim Sum,I,N
Sum=0
N=100 'N值可以是其它地方传过来的值,这里简单的赋
值。
'循环,从 1加到 N
For I=1 to N
Sum=Sum+I
Next
Response.write "1+2+3+…+" & Cstr(N) & "=" & Cstr(Sum)
%>
</body>
</html>
3.11.2 Do… Loop循环
1,语法一, 或
Do While 条件 Do
执行语句 执行语句
Loop Loop While 条件
2,语法二
Do Until 条件 或 Do
执行语句 执行语句
Loop Loop Until 条件
示例,
<% Option Explicit %>
<html>
<head>
<title> Do…Loop 循环语句用法示例 </title>
</head>
<body>
<%
Dim Sum,I,N
Sum=0
N=100 'N值可以是其它地方传过来的值,这里简单的赋值。
I=1
'循环,从 1加到 N
Do While I<=N
Sum=Sum+I
I=I+1
Loop
Response.write "1+2+3+…+" & Cstr(N) & "=" & Cstr(Sum)
%>
</body>
</html>
3.11.3 While … Wend循环
语法,
While 条件
执行语句
Wend
3.11.4 For Each… In循环
功能,从一个集合中取出每一个元素
语法,
For Each 元素 In 集合
执行语句
Next
3.11.5 循环嵌套
嵌套,就是在一个大循环内可以包含一个小循环,
注意,嵌套不可以交叉
3.11.6 强行退出循环
在 For?Next 循环中,强行退出循环的指令是,Exit For
在 Do?Loop 循环中,强行退出循环的指令是,Exit Do
3.12 注释语句
只是在自己或别人阅读源程序时才能看到注释,以方便以后阅读
程序,
注释语句不执行,也不会显示在页面上,
一般用 Rem或’符号 (单撇号 )
3.13 容错语句
一般情况下,当程序发生错误时,程序会终止执行,并在页面上显
示错误信息,但有时不希望程序终止,也不希望将错误暴露在访问者面前,
就要用到容错语句,On Error Resume Next
这条语句表示,如果碰到错误,就跳过去继续执行下一句,
需要注意的是,调试程序时如果加了该语句,就不会发现错误了,
第四章 ASP常用内部对象
? Request和 Response对象
? Session和 Application对象
? Server对象
第 4.1节 Request和 Response对象
? 内容简介:
学习 ASP的 Request和 Response对象,学习如何使用 Request对象获取客
户端的数据,学习如何使用 Response对象向客户端输出数据。
? 目的与要求:
? 利用 Request对象的 Form方法获取表单中的信息
? 利用 Request对象的 QueryString方法获取表示在 URL后面的信息
? 利用 Request对象的 ServerVariables方法获取客户端 IP地址等环境变量
第 4.1节
? 目的与要求:(续)
? 利用 Request对象的 write方法输出信息及它的省略用法
? 掌握 Response对象的 Redirect方法,End方法,Buffer属性
? 利用 Response对象的 Cookies方法设臵 Cookies的值,利用 Request对象
的 Cookies获取方法获取 Cookies的值。
? 重点:
? Request对象的 Form方法
? Request对象的 QueryString方法 (难点)
? Response对象的 write方法,Redirect方法,Buffer属性
第 4.1节
4.1.1 ASP内部对象概述
对 象 功 能
Request 从客户端获取信息
Response 将数据信息输送给客户端
Session 存储单个客户的信息
Application 存放同一个应用程序的所有用户之间的共享信息
Server 创建 COM对象和 Scripting组件等
第 4.1节
4.1.2 利用 Request对象从客户端获得信息
4.1.2.1 Request对象简介
? 语法:
Request[.数据集合 |属性 |.方法 ](变量或字符串 )
? 例如:
<%
Request.From(“name”)
Request.QueryString(“name”)
%>
第 4.1节
4.1.2.1 Request对象简介
说 明:
? 传入的参数是要得到的该信息的变量的名称。
获取方法可以省略,ASP将会在 QueryString,Form,Cookies、
ServerVariables,ClientCertificate五种方法中检查是否有信息传入,
如果有则会返回获得的变量信息。
? ? [? 和 ? ]? 之间的参数可以省略,采用默认值;
? |? 表示 ? 或 ? 的意思。
第 4.1节
4.1.2.1 Request对象简介
Request对象的获取方法
获取方法 功 能
Form 取得客户端在 FORM表单中所输入的信息
QueryString 从查询字符串中读取用户提交的数据
Cookies 取得客户端浏览器的 Cookies信息
ServerVariables 取得服务器端环境变量信息
ClientCertificate 取得客户端浏览器的身份验证信息
第 4.1节
4.1.2.1 Request对象简介
Request对象的属性
属 性 功 能
TotalBytes 取得客户端响应数据的字节大小
属 性 功 能
BinaryRead 以二进制码方式读取客户端 POST数据
Request对象的属性
第 4.1节
4.1.2.2 使用 Form获取方法
1,FORM表单的语法
<form name=该 FORM的名称
method=表单上传方法 (post或 get),通常取值为 post
action=处理程序的地址
enctype=数据传送 MIME类型,通常可以省略
onsubmit=按下 submit所调用的程序,通常可以省略
target=输出窗口或分页名称,通常可以省略
……
FORM表单元素(如文本框、单选框、复选框等)
……
</form>
第 4.1节
4.1.2.2 使用 Form获取方法
2,FORM获取方法示例 (简单的计算器 4-1.asp)
<html>
<head><title> Form获取方法示例 1 </title></head>
<body>
<form name="test" method="post" action="4-2.asp">
a<input type="text" name="a"> +
b<input type="text" name="b">
<input type="submit" value="确定 ">
</form>
</body>
</html>
第 4.1节
2,FORM获取方法示例(续)
简单的计算器 4-2.asp
<html>
<head> <title> Form获取方法示例 1 </title></head>
<body>
<% Dim a,b,c
a=Request.Form("a")
b=Request.Form("b")
c=CInt(a)+CInt(b)
Response.Write "a+b的和 =" & CStr(c)
%>
</body>
</html>
第 4.1节
2,FORM获取方法示例(续)
简单的计算器运行结果
第 4.1节
3,FORM获取方法说明
? FORM表单和 FORM获取方法之间的区别,前者是 HTML提供的表单,后者是
ASP的 Request对象的一种获取方法
? 单选框,name属性相同,表示是一组,只能选择一个
? 多选框,name属性相同,表示是一组,可以选择多个,获取的结果中各
个值用逗号隔开
? Request.Form方法获取的是表单元素的 value属性值
第 4.1节
4.1.2.3 使用 QueryString获取方法
? 获取标识在 URL后面的所有返回的变量及其返回值
<a href=“4-1.asp?name=白云 &age=20”>显示 </a>
<%
Dim name,age
name=Request.QueryString("name") '返回姓名
age=Request.QueryString("age") '返回年龄
Response.Write "您的姓名是," & name & ",年龄是," & age
%>
? 显示得到的信息
? 可以直接在浏览器的地址栏输入传递的数据
第 4.1节
4.1.2.4 ServerVariables获取方法
? 语法:
Request.ServerVariables (“环境变量名称 ? )
? 例如:
输出客户端 IP地址
<%
IP=Request.ServerVariables (“REMOTE_ADDR”)
Response.Write,来访者的 IP地址是:? & IP
%>
第 4.1节
4.1.2.5 ClientCertificate获取方法
? 语法,Request.ServerVariables (关键字 )
4.1.2.6 TotalBytes属性
? 语法,Request.TotalBytes
4.1.2.7 BinaryRead方法
? 语法,Request.BinaryRead(字节大小 )
? 例如:
<%=Request.BinaryRead(Request.TotalBytes)%>
第 4.1节
4.1.3 利用 Response对象向客户端输出信息
4.1.3.1 Response对象简介
Response对象的属性
属 性 说 明
Buffer 设臵为缓冲信息。取值为 True或 False,默认为 False
ContentType 控制送出的文件类型
第 4.1节
Response对象的方法
方 法 说 明
Write 输出信息至客户端
Redirect 引导客户端浏览器至新的 Web页面
BinaryWrite 输出二进制信息
Clear 清除在缓冲区的所有 HTML页面前提,Response.Buffer=True
End 终止处理 ASP程序,并返回当时的状况
Flush 立刻送出缓冲区的 HTML数据前提,Response.Buffer=True
第 4.1节
4.1.3.2 使用 Write方法输出信息
? 语法:
Response.Write 变量或字符串
? 例如:
<%
Response.Write name &,您好!?
Response.Write,现在是:? & now()
Response.Write,天道酬勤?
%>
第 4.1节
? Write的省略用法,<%=变量或字符串 %>
? Write方法输出 HTML元素:
方法一:
方法二:
<%= name &,您好!? %>
<%= ?现在是:? & now() %>
<p>欢迎 <font color=“red”><%=name%></font>的来访!
<% Response.Write,<p>欢迎 <font color=?red?>” &name&”</font>的来访!? %>
第 4.1节
4.1.3.3 使用 Redirect方法
? 作用:引导客户端至另一个 URL地址
? 语法:
Response.Redirect 网址变量或字符串
? 例如:
<%
Response.Redirect,http://www.163.com”
Response.Redirect,other.sp”
theURL=“http://www.sina.com.cn”
Response.Redirect theURL
%>
第 4.1节
4.1.3.3 使用 Redirect方法(续)
? 注意:
要使用重定向功能,在 ASP文件开头加上:
<%Response.Buffer=True%>
引导至站内其他网页,一般使用相对路径
第 4.1节
4.1.3.4 使用 End方法停止 ASP程序
? 作用,终止 ASP程序
? 语法,Response.End
4.1.3.5 关于 Buffer属性
? 作用,设臵服务器是否将页面先输出到缓冲区。取值为 True或
False
? 语法,<% Response.End %>
第 4.1节
4.1.3.6 BinaryWrite方法
? 作用,输出二进制信息,不进行任何字符转换,直接输出
? 语法,Response.BinaryWrite 变量或字符串
第 4.1节
4.1.4 使用 Cookies
4.1.4.1 什么是 Cookies
? 含义:
俗称甜饼,可以在客户端长期保存信息。它是服务器发送到客户端浏
览器的文本串句柄,保存在客户的硬盘上,一般在 Windows文件夹下临
时文件夹下的 Cookies文件夹里
? 形式:
会话 Cookies和永久 Cookies
第 4.1节
4.1.4.2 使用 Response对象设臵 Cookies
? 语法:
Response.Cookies(“CookiesName”)[(关键字 )|.属性 ]=字符串
? 参数:
参 数 说 明
Cookies Cookies变量名称
关键字 若指定了 key,则该 Cookies就是一个集合,它包含几个关键字,可以分别赋值
属性 指定 Cookies自身的值
第 4.1节
4.1.4.2 使用 Response对象设臵 Cookies( 续)
? 属性,
名 称 描 述
Expires 仅可写入,指定该 Cookies到期的时间
Domain 仅可写入,指定 Cookies仅送到该网域( Domain)
Path 仅可写入,指定 Cookies仅送到该路径( Path)
Secure 仅可写入,设臵该 Cookies的安全性
HasKeys 只读,指定 Cookies是否包含关键字,也就是判定 Cookies目录下是否包含其他 Cookies
第 4.1节
4.1.4.2 使用 Response对象设臵 Cookies( 续)
注意,
? 使用 Cookies方法设臵 Cookies时,如果该 Cookies不存在,
则 ASP会自动建立一个;如果存在,原有值就会被覆盖
? Response.Cookies必须用在所有 HTML元素的前面;
如果想用在任意地方,文件开头必须加上:
<%Response.Buffer=True%>
第 4.1节
4.1.4.2 使用 Response对象设臵 Cookies( 续)
例如,
? 设臵不含关键字的 Cookies
<% Response.Cookies(“addr”)=“北京” %>
? 设臵含关键字的 Cookies
<% Response.Cookies(“addr”)(“a1”)=“北京”
Response.Cookies(“addr”)(“a2”)=“上海” %>
? 设臵 Cookies的有效期
<% Response.Cookies(“addr”)=“北京”
Response.Cookies(“addr”),Expires=#200510-10# %>
第 4.1节
4.1.4.3 使用 Request对象获取 Cookies
? 语法:
Request.Cookies(“CookiesName”)[(关键字 ) |.属性 ]
? 参数:
参 数 说 明
CookiesName 指定要检索的 Cookies的名称
关键字 可选参数,用于从 Cookies集合中检索子关键字的值
属性 指定所想要的 Cookies的值
第 4.1节
4.1.4.3 使用 Request对象获取 Cookies( 续)
? 说明:
Request.Cookies可以出现在 HTML程序的 <body>段中的任何位臵
如果请求一个为定义的 Cookies或关键字,返回空值
? 例如:
省略关键字的用法
<% Response.Cookies(“addr”)=“北京”
Response.Cookies Request.Cookies(“addr”)
%>
第 4.1节
例如 (续)
有关键字的用法
不指定关键字,则获取后的格式为:
?第一个关键字名称 =值 &第二个关键字名称 =值 …… ?
判定 Cookies关键字数目
语法,Request.Cookies(“CookiesName”).Haskeys
返回值,True False ( 是否含有多个关键字)
<% Response.Cookies(“addr”)(“a1”)=“北京”
Response.Cookies Request.Cookies(“addr”)(“a1”)
%>
第 4.1节
?1.请编写程序,根据客户的选择,分别重定向到教师或学生页
面。(提示,综合利用表单和 Redirect方法)
?2.请编写一个注册表单,客户填写注册信息后,将有关内
? 容显示在页面上。(提示,以后学了数据库知识,就可以
保存到数据库里了)
本节练习
第 4.1节
第 4.2节 Session和 Application对象
4.2.1.1 Session对象简介
? Session对象是什么?
? 为什么要用 Session对象?
? Session对象的有效期?
? 属性、方法
? 属性有下面两个:
?1,SessionID,存储用户的 Session ID
– 2,Timeout,Session的有效期时长
? 方法只有一个:
– 1,Abandon,清除 Session对象
第 4.2节
? 利用 Session可以保存变量或字符串等信息,语法如下:
? Session(―Session名字? )=变量或字符串信息
? 从 Session中调用该信息的语法:
? a=session(―Session名字? )
4.2.1.2 利用 Session存储信息
第 4.2节
Test5_1.asp Test5_2.asp
第 4.2节
4.2.1.3 利用 Session存储数组信息
? Session存储数组和存储简单信息基本上是一样的,只
? 不过要记住。 Session把传入的数组当成一个整体看
? 待,只能把一个数组整体存入取出。
? 保存信息的语法:
? Session(―Session数组? )=数组变量
? 获取 Session信息的语法:
? a=Session(―Session数组? )
第 4.2节
Test5_3.asp Test5_4.asp
第 4.2节
4.2.1.4 Timeout属性
? 利用 Timeout属性可以修改 Session对象的有效期时长,默认
为 20分钟。
? 语法:
? Session.Timeout=整数(分钟)
? 例如:
? <% Session.Timeout=30 ?改为 30分钟 %>
第 4.2节
4.2.1.5 Abandon方法
? Session对象到期后会自动清除,但到期前可以用 Abandon方法
强行清除。
? 语法:
? Session.Abandon
? 例如:
? <% Session.Abandon %>
第 4.2节
4.2.2.1 Application对象简介
? Application对象是什么?
? 为什么要用 Application对象?
? Application对象的有效期?
? 方法
?方法有两个:
?1,Lock 锁定
?2,Unlock 解除锁定
第 4.2节
4.2.2.2 利用 Application存储信息
? Application的使用也是比较简单的,你可以把变量或字符串
等信息很容易的保存在 Session中,语法:
? Application(―Application名字? )=变量或字符串信息
? 获取 Application中的信息也很容易
? a=Application(―Application名字? )
第 4.2节
Test5_5.asp Test5_6.asp
第 4.2节
4.2.2.3 利用 Application存储数组信息
? 利用 Application对象存储数组信息和 Session对象类似,也必
须把数组当成一个整体存入和读取,只是存储时别忘了 Lock
和 Unlock就行了。语法如下:
? Application(―Application数组? )=数组变量
? 获取 Application信息的语法:
? a= Application(―Session数组? )
第 4.2节
4.2.3.1 Global.asa文件
? 该文件是干什么的?
?Global.asa文件用来存放 Session对象和 Application对象事
件的程序,当 Session或 Application被第一次调用或结束时,
就会运行 Global.asa文件中对应的程序。
? 该文件的名字?
?必须叫做 Global.asa
? 该文件的位臵?
?存放在应用程序的根目录下,也就是说必须存放在
WWWRoot下。
第 4.2节
? Global.asa文件示例。
第 4.2节
显示在线人数
Test5_7.asp
第 4.2节
4.2.3.2 应用程序
? Global.asa文件到底有几个?
? 如果我做了一个个人网站,又做了一个单位网站,是不是
他们都共用一个 Global.asa?
? 有没有办法让不同的网站使用不同的 Global.asa文件?
? 在 WWWroot下分别建立几个文件夹可以不可以,
? 使用虚拟目录可以解决该问题。
第 4.2节
附:新建一个应用程序的方法
? 第一步,新建一个文件夹
? 第二步,添加虚拟目录
? 第三步,设臵默认文档
第 4.2节
1,添加虚拟目录
? 第一步:在 C:\inetpub\wwwroot下建立一个新的文件夹 temp
第 4.2节
添加虚拟目录
? 第二步:启动 IIS,对准默认 Web站点单击右键,依次选择
新建、虚拟目录
第 4.2节
添加虚拟目录
? 第三步:添加虚拟目录名
第 4.2节
添加虚拟目录
? 第四步:选择站点目录路径
第 4.2节
2,设臵默认文档
? 为什么要设臵默认文档?
当输入网址 http://www.pku.edu.cn后,我们并没有说明要
显示哪个文档?这时候,显示哪个文档就靠服务器上设臵
的默认文档。
第 4.2节
设臵默认文档方法:
? 第一步:启动 IIS,对准虚拟目录 temp单击右键,选择?属性?
命令。
第 4.2节
设臵默认文档方法:
? 第二步:启动 IIS,对准虚拟目录 temp单击右键,选择
?属性?命令。
第 4.2节
本节练习
? 1、请编辑一个注册表单,让客户输入用户名和密码,然后
把用户名保存到 Session中,在其它页面中显示用户名。
? 2、请对照教材,编写一个简单的聊天室软件。
? 3、请研究一下 IIS,是否可以在别的文件夹下建立网站?
第 4.2节
第 4.3节 Server对象
? 主要用来创建 COM对象和 Scripting组件、转化数据格式、
管理其他网页的执行。语法如下:
?Server.方法 |属性 (变量或字符串 |=整数 )
? Server对象的属性如表 6-1所示。
4.3.1 Server对象简介
第 4.3节
属 性 说 明
CookiesName 指定要检索的 Cookies的名称
? Server对象的方法如表 6-2所示。
4.3.1 Server对象简介
第 4.3节
方 法 说 明
CreatObject 用于创建已注册到服务器的 ActiveX组件、应用程序或脚本对象
HTMLEncode 将字符串转换成 HTML格式输出
URLEncade 将字符串转换成 URL的编码输出
MapPath 将路径转化为物理路径
Execute 停止执行当前网页,转到新的网页执行,执行完毕后返回原网页,继续执行 Execute方法后面的语句
Transfer 停止执行当前网页,转到新的网页执行。
? 规定脚本文件执行的最长时间。如果超出最长时间,脚本文件
还没有执行完毕,就自动停止执行。
? 默认最长时间为 90秒。 修改时间方法如下,
? <%Serve.ScriptTimeout=300 '设置最长执行时间为 300秒 %>)
? 也可以在页面上显示最长时间,方法如下,
? <%Response.Write Server.ScriptTimeOut %>表 6-1所示。
4.3.2 Server对象的属性和方法
4.3.2.1 ScriptTimeout属性
第 4.3节
? 主要用于创建组件、应用对象或脚本对象的实例。
? 语法如下,
? Set Server.CreateObject(ActiveX Server组件 )
? 例如,
? <%Set db=Server.CreatcObject("ADODB.Connection")
? '建立数据库实例 %>
4.3.2.2 CreateObject方法
第 4.3节
? 该方法用来转化字符串,它可以将字符串中的 HTML标记字符
转换为字符实体,如将 <转化为 &It;,将 >转化为 >。
? 语法如下,
? Server.HTMLEncode(变量或字符串 )
4.3.2.3 HTMLEncode方法
第 4.3节
? 例如:
第 4.3节
<html>
<head><title> HTMLEncode方法示例 </title></head>
<body>
<%
Response.Write "<a href='http://www.sohu.com'>搜狐 </a>"
Response.Write "<br>" '输出一个换行符
Response.Write Server.HTMLEncode ("<a href='http://www.sohu.com'>搜狐 </a>")
%>
</body>
</html>
4.3.2.3 HTMLEncode方法
? 运行效果如下:
第 4.3节
4.3.2.3 HTMLEncode方法
?用来转化字符串,它可以将其中的特殊字符,如把空格 转
化为相应的 URL编码,+”
?语法如下,
? Server.URLEncode(字符串 )
第 4.3节
4.3.2.4 URLEncode方法
? 将虚拟路径转化为物理路径。
? 语法如下:
? Server.MapPath(虚拟路径字符串 )
? 例如:
第 4.3节
4.3.2.5 MapPath方法
<%
Response.Write Server.MapPath("6-1.asp")
Response.Write "<br>" '换行
Response.Write Server.MapPath ("../chapter5/5-1.asp")
%>
? 运行效果如下:
第 4.3节
4.3.2.5 MapPath方法
第 4.3节
4.3.2.6 Execute方法
? 用来停止执行当前网页,转到新的网页执行,执行完毕后返
回原网页,继续执行 Execute方法后面的语句。
? 语法如下,
? Server.Exccute(变量或字符串 )
第 4.3节
4.3.2.6 Execute方法
?Execute方法和 Redirect方法的重大区别。
?重定向,Redirect语句发生在客户端; Execute方法发生在
服务器端。
?返回,Redirect语句不返回原网页; Execute方法返回原页
面,继续执行下面的语句。
?环境变量传递,Redirect语句不能传递; Execute方法可以
?转向,Redirect方法可以转向一个网页和其他网站;而
Execute方法一般只能转到同一个应用程序的其他文件。
第 4.3节
4.3.2.7 Transfer方法
? 用来停止执行当前网页,转到新的网页执行,执行完毕后不
返回原网页,而是停止执行过程。
? 语法如下,
? Server.Transfe(变量或字符串 ))
本节练习
? 1、请结合以前开发的考试程序,增加考试 HTML知识的题
目。例如:请问换行标记是什么?
? A,<p> B,<br> C,<hr> D,<a>
? 2,在考试程序中,使用 HTMLEncode方法防止用户输入
HTML语句。
第 4.3节
第五章 数据库基础知识
? 了解数据捧的基本概念。
? 会建立 Access数据库,会添加表和查询
? 掌握最基本的 SQL语句,尤其是 Select,Insert、
Delete和 Update语句
? 会给 Access数据库设臵数据源
第 5.1节 数据库的基本概念
第 5.1节
5.1.1 数据管理技术的发展阶段
? 人工管理阶段。
? 文件管理阶段。
? 数据库管理阶段。
第 5.1节
5.1.2 数据库 的基本术语
? 字段:表中纵的一列叫做一个字段,“年龄”就是选中字段
的名称。
? 记录:表中横的一行叫做一个记录,图中选择了第 2条 记
录,也就是“张洪”的相关信息。
? 值:纵横叉的地方叫做值。比如图中选择了“张洪”的年龄,
为,18"。
第 5.1节
5.1.2 数据库 的基本术语
? 表:由横行竖列垂直相交而成,可以分为表的框架 (也称表
头 )和表中的数据两部分。 图 7-1 就是一张表。
? 数据库:用来组织管理表的,一个数据库一般可以管理若
干张表。数据库不仅提供了存储数据的表,而且还包括规
则、触发器和表的关联等高级操作。
第 5.1节
5.1.3 数据库 管理系统
? 比较流行的大中型关系型数据库管理系统有:
SQL Server,IBM DB2,Oracle,SyBase,Informix等。
? 常用的小型数据库管理系统有,Access,Pradox,FoxPro
等。
第 5.1节
5.1.3 数据库 管理系统
? 在 ASP中一般使用 SQL Server或 Access数据库。
? SQL Server运行稳定、效率高、速度快,但配臵起来较困
难、移植也比较复杂,适合大型网站使用。
? Access配臵简单、移植方便,但效率较低,适合小型网站。
第 5.2节 建立 Access数据库
第 5.2节
5.2.1 规划自己的数据库
5.2.2 新建数据库
5.2.3 新建和维护表
? 新建表
? 保存表
? 在表中输入数据
? 修改数据表的设计
第 5.2节
5.2.4 新建和维护查询
? 新建简单查询。
? 显示查询内容。
? 利用 SQL语言建立查询 。
第 5.3节 SQL语言简介
第 5.3节
5.3 SQL语言简介
?Select语句 ——查询数据
?Insert语句 ——添加记录
?Delete语句 ——删除记录
?Update语句 ——更新记录新建简单查询。
第 5.3节
5.3.1 Select语句
?从数据库中查询有关记录
?语法,
Select [Top(数值 )] 字段列表 From表 [Where条件 ][Order By字
段 ][Group By字段 ]
第 5.3节
5.3.1 Select语句
下面举一些常见的例子说明。
? 选取全部数据
? 选取指定字段的数据
? 只选取前若干条记录
Select * From users
Select real_name,email From users
Select Top 3* From users
第 5.3节
5.3.1 Select语句
? 用表中原有的字段产生派生字段
? 根据条件选取数据
? 按关键字查找记录
Select real_name,(submit_date+365)As new_date From users
Select * From users Where submit_date<#2003-11-1#
Select * From users Where real_name like"%勇 %"
第 5.3节
5.3.1 Select语句
? 查询结果排序
? 查询满足条件的记录的总数
? 组合查询
Select * From users Order By real_name ASC
Select Count(*)As total From users Where submit_ date<#2003-11-1# 按关
键字查找记录
Select users.real_name,daylog.log_date,daylog.IP From users,daylog Where
users.user_name=daylog.user_name
第 5.3节
5.3.1 Select语句
? 查询结果排序
? 查询满足条件的记录的总数
? 组合查询
Select * From users Order By real_name ASC
Select Count(*)As total From users Where submit_ date<#2003-11-1# 按关
键字查找记录
Select users.real_name,daylog.log_date,daylog.IP From users,daylog Where
users.user_name=daylog.user_name
第 5.3节
5.3.2 Insert语句
Insert Into表 (字段 1,字段 2,…) Values( 字段 1的值,字段 2的值,
… )
?向数据库中插入数据
?语法,
第 5.3节
5.3.2 Insert语句
下面举一些常见的例子说明。
? 只插入 user_name字段
? 只插入 user_name字段和 real_name字段
? 只插入 user_name和 submit_date字段
Insert into users(user_name)Values("liya")
Insert Into users(user_name,real_name)Values("feiyun","飞云 ")
Insert Into users(user_name,submit_date) Values("luofang",#2003-12-5#)
第 5.3节
5.3.2 Insert语句
? users表中增加了一个年龄字段 age,为数字类型,则为,
? 在 users表中增加一条完整的记录
Insert Into users(user_name,age) Values("xhangpeng",23)
Insert Into users(user_name,password,real_name,tel,email,submit_date)
Values("晓云 ","123456","小云 ","654456","meng@163.com",#200310-10#)
第 5.3节
5.3.2 Insert语句
下面 举一些 经常出错的 Insert语句说明。
? user_name是主键,但没有赋值
? 字段不允许空字符申,却赋了空字符串
? 字符串字段两边没有加双引号
第 5.3节
5.3.3 Delete语句
? 使用 Delete语句来删除表中无用的一记录。
? 语法:
? 说明
Delete From表 [Where条件 ]
? ? Where条件?,凡是符合条件的记录都会被删除,如果
没有符合条件的记录则不删除。
? 如果省略? Where条件?,将删除所有数据。
第 5.3节
5.3.3 Delete语句
下面举一些常见的例子说明。
? 删除 user name为? tutu‖的用户
? 删除 2003年 1月 1日前注册,且 real_name为?李亚?的用
户
? 删除表中所有数据
Delete From users Where user name="tutu"
Delete From users Where submit_date<#2003-1-1# And real_name="李亚 "
Delete From users
第 5.3节
5.3.4 Update语句
? 使用 Update语句来实现更新数据的功能来
? 语法:
? 说明
Delete From表 [Where条件 ] Update 数据表名 Set字段 1=字段
值 1,字段 2=字段值 2,…[ Where条件 ]
? ? Where条件?的用法。凡是符和条件的记录都被更新,如果没有符合
条件的记录则不更新。
? 如果省略? Where条件?,将更新数据表内的全部记录。
? 如果想更新数据,也可以先删除再添加
第 5.3节
5.3.4 Update语句
下面举一些常见的例子说明。
? 修改 user_name为? jjshang?的用户的电话和 E-mail地址。
? 假如有年龄字段 age,将所有人的年龄增加 10岁。
Update users Set te1="8282999",emaiI="jjshang@l63.net" Where
user_name="jjshang"
Undate users Set age=age+10
第 5.4节 设臵数据源
第 5.4节
5.4 设臵数据源
?依次选择:
【开始】一【设臵】一【控制面板】一
【管理工具】一【数据源 (ODBC)】
?选择【系统 DSN】
?选择 Access 的驱动程序:? Microsoft Access Driver(*.mdb)‖
?输入数据源名称
?选择数据库
本章练习
? 1.建立用户数据库 address,包括数据表 users和 score。
? 2.在数据库 address中,建立查询
? 3.为数据库设臵数据源。
第 6章 ASP数据库编程
第 6章 ASP数据库编程
? 内容简介:
学习连接数据库,实现查询、添加、删除和修改功能,了解 ADO的几大
对象及相互关系,学习各种事务处理和分页显示数据,学习连接 SQL Server
数据库的语句。
? 目的与要求:
? 熟练掌握连接数据库的两种方式
? 利用 select语句查询记录,Insert语句添加,Delete语句删除,Update
语句修改记录
第 6章 ASP数据库编程
? 目的与要求:(续)
? 了解 ADO的几大内部对象,Connection对象,Recordset对象,Command
对象的概念和相互关系
? 会使用事务处理、会分页显示
? 连接 SQL Server数据库的语句
? 重点:
? 数据库连接和 SQL语句的写法
? 利用 execute方法和 sql语句实现查询、添加、修改、删除
? 利用 Connection对象,Recordset对象,Command对象实现数据库的深入
操作,如分页显示等 (难点 )
6.2.4 Recordset对象
6.2.4.1 建立 Recordset对象
6.2.4.2 Recordset对象属性
6.2.4.3 Recordset对象的方法
6.2.4.4 利用 Recordset对象查
询记录
6.2.4.5 分页显示数据
6.2.4.6 利用 Recordset对象更
新数据库
6.2.4.7 Field对象和 Fields集
合
6.2.5 存取 SQL Server数据库
6.2.5.1 连接 SQL Server数据库
6.2.5.2 存取 SQL数据库
6.2.5.3 SQL Server数据库和
ACCESS数据库的互相转化
6.2.6 对多个表进行组合查询
讲解提纲 (续 )
第 6章 ASP数据库编程
6.2 深入进行数据库编程
6.2.1 ADO的内部对象
6.2.2 Connection对象
6.2.2.1 建立 Connection对象
6.2.2.2 Connection对象的属性
6.2.2.3 Connection对象的方法
6.2.2.4 利用 Connection对象存取数据库
6.2.2.7 事务处理
6.2.2.6 Error对象和 Errors集合
6.2.3 Command对象
6.2.3.1 建立 Command对象
6.2.3.2 Command对象的属性
6.2.3.3 Command对象的方法
6.2.3.4 利用 Command对象存取数据库
6.2.3.7 非参数查询
6.2.3.6 参数查询
6.2.3.7 Parameter对象和 Parameters集合
组件 说明
数据库存取组件 用来存取数据库,是所有内臵组件中最强大
的一个
文件存取组件 用来存取文件,提供文件的输入输出方法
广告轮显组件 轻松构建广告页面,维护、修改方便
浏览器兼容组件 根据客户端浏览器类型的不同,送出正确的
Web页面
文件超链接组件 轻松建立象书本的索引或目录一样的超链接
Web页面
计数器组件 轻松统计网页访问次数
6.1.1 ASP内部组件概述
第 6章 ASP数据库编程
6.1.2.1 数据库存取组件简介:
数据库存取组件是使用 ADO技术存取数据库的一种 ASP内
臵组件,是 ASP内臵组件中最重要的和使用最多的一个组
件。
ADO包括三个主要对象是,Connection,Command和
Recordset
以下将以网络导航为例讲解:连接数据库、查询记
录、添加记录、删除记录、修改记录
6.1.2 利用数据库存取组件存取数据库
第 6章 ASP数据库编程
6.1.2.2 数据库准备
在 Access中建立数据库 wwwlink.mdb,存放在
C:\inetpub\wwwroot目录下,如图
第 6章 ASP数据库编程
6.1.2.3 连接数据库
<%
Set db=server.CreateObject(―ADODB.Connection‖)
Db.open ―wlink‖
%>
连接数据库,要用到 Connection对象。具体连接方法有两种:
利用数据源连接
特点:连接简单,但需要在服务器设臵数据源
假设配臵的数据源名字为 wlink,则代码如下
第 6章 ASP数据库编程
连接数据库
不用数据源的连接方法
优点:方便在机器之间移植代码
代码举例 (假设数据库与页面在同一目录下 ):
<%
Set db=server.CreateObject(―ADODB.Connection‖)
Db.open ―dbq=c:\inetpub\wwwroot\wwwlink.mdb;‖&_
―Driver={Microsoft Access Driver(*.mdb)}‖
%>
第 6章 ASP数据库编程
连接数据库
对于第二种方法,还可采用 Server对象的 Mappath方法,修
改为:
<%
Set db=server.CreateObject(―ADODB.Connection‖)
Db.open ―dbq=‖&server.mappath(―wwwlink.mdb‖)&_
―;Driver={Microsoft Access Driver(*.mdb)}‖
%>
第 6章 ASP数据库编程
6.1.2.4 利用 select语句查询记录
查询时,需要用 Connection对象的 Execute方法打开一个记
录集,然后在记录集中移动记录指针依次显示所有记录
<%
set db=Server.Createobject("ADODB.Connection")
db.Open "DBQ="&Server.Mappath("wwwlink.mdb")&_
";DRIVER={Microsoft Access Driver (*.mdb)};"
%>
建立一个 Connection对象实例 db
第 6章 ASP数据库编程
建立 Recordset对象实例 rs
dim strsql,rs
strsql="select * from link order by link_id desc" '按降序排列
set rs=db.Execute(strsql)
第 6章 ASP数据库编程
显示数据库记录
<%
do while not rs.Eof '只要不是结尾就执行循环
%>
<tr>
<td><%=rs("Name")%></td>
<td><a href="http://<%=rs("URL")%>" target="new"><%=rs("URL")%></a>
</td>
<td><%=rs("Intro")%></td>
<td><a href="6-3.asp?link_id=<%=rs("link_id")%>">删除 </a></td>
<td><a href="6-4.asp?link_id=<%=rs("link_id")%>">修改 </a></td>
</tr>
<% rs.movenext '将记录集指针移动到下一条记录
loop
%>
第 6章 ASP数据库编程
6.1.2.5 利用 insert语句添加记录
添加记录,利用 Connection对象的 Execute方法,不必返回
记录集。
set db=Server.Createobject("ADODB.Connection")
db.Open "DBQ="&Server.Mappath("wwwlink.mdb")&_
";DRIVER={Microsoft Access Driver (*.mdb)};"
第 6章 ASP数据库编程
连上数据库,建立一个 Connection对象实例 db
varName=Request("name") varURL=Request("URL")
varIntro=Request("intro")
插入 Sql语句的写法
StrSql="insert into link(name,URL,intro,submit_date) values('" &_
varName & "','" & varURL & "','" & varIntro & "','" & Date() & "')"
获取上个页面的插入信息
利用 Execute方法,添加记录
db.execute(strSql)
第 6章 ASP数据库编程
删除记录,利用 Connection对象的 Execute方法,不必返回
记录集
6.1.2.6 利用 Delete删除记录
连上数据库,建立一个 Connection对象实例 db
set db=Server.Createobject("ADODB.Connection")
db.Open "DBQ="&Server.Mappath("wwwlink.mdb")&_
";DRIVER={Microsoft Access Driver (*.mdb)};"
第 6章 ASP数据库编程
传过来的要删除的记录的记录编号
varLink_id=Request.QueryString("link_id―)
strSql="delete from link where link_id=" & varLink_id
删除 SQL语句的写法
利用 Execute方法,删除记录
db.Execute(strSql)
第 6章 ASP数据库编程
6.1.2.7 利用 Update修改语句
修改记录,利用 Connection对象的 Execute方法。
获取传入的要修改的 Link_ID
varLink_id=Request.QueryString("link_id")
连上数据库,建立一个 Connection对象实例 db
set db=Server.Createobject("ADODB.Connection")
db.Open "DBQ="&Server.Mappath("wwwlink.mdb")&_
";DRIVER={Microsoft Access Driver (*.mdb)};"
第 6章 ASP数据库编程
建立 Recordset对象实例 rs
strSql=―select * from link where link_id=‖ & varLink_id
?varLink_id是传过来的
set rs=db.Execute(strSql)
第 6章 ASP数据库编程
6.2 深入进行数据库编程
ADO的内部对象
Connection对象
Command对象
Recordset对象
存取 SQL Server对象
对多个表进行组合查询
第 6章 ASP数据库编程
6.2.1 ADO的内部对象
ADO的主要对象和功能说明
对象 说明
Connection 用来建立与数据库的连接
Command 用来对数据库执行命令,如查询、添加、删除,修改记录
Recordset 用来得到从数据库返回的记录集
第 6章 ASP数据库编程
6.2.2 Connection对象
学习 Connection对象的重点:
如何建立 Connection对象
Connection对象的 Execute方法
事务处理功能
注意事项
需明确建立 Connection对象,不明确时将利用 Command或 Recordset对象
直接连接数据库。这样无法利用 Connection对象的许多功能
Connection对象一般用来连接数据库,也可用来查询、添加、删除或修
改记录,但有一定局限性,如无法完成分页
第 6章 ASP数据库编程
6.2.2.1 建立 Connection对象
第一步:建立对象,语法如下:
Set Connection 对象
=Server.CreateObject(―ADODB.Connection‖)
第二步:用 open方法来打开连接,语法如下
Connection 对象,open ―参数 1=参数 1的值 ;参数 2=参数 2的
值 ;…… ?
第 6章 ASP数据库编程
Connection对象的 Open方法的参数
说明:
参数不会都用到,如 Access数
据库就不用 User和 Password
连接方式不同,参数不同,如
数据源用 DSN,而不用数据源
就用 DBQ和 Driver
多个参数之间用分号隔开,顺
序无关系
参数 说明
DSN ODBC数据源名称
User 数据库登录帐号
Password 数据库登录密码
Driver 数据库类型(驱动程序)
Dbq 数据库的物理路径
Provider 数据提供者
第 6章 ASP数据库编程
6.2.2.2 Connection对象的属性
属性 说明
Attribute 设臵 Connection对象控制事务处理时的行为
CommandTimeout Execute方法的最长执行时间
ConnectionString 指定 Connection对象的数据库连接信息
ConnectionTimeout Open方法与数据库连接的执行最长时间
CursorLocation 控制光标的类型
DefaultDatabase 指定 Connection对象的缺省数据库名称
IsolationLevel 指定 Connection对象的事务处理时机
Mode 指定数据库连接的权限
Provider 设臵 Connection对象内定的数据库管理程序名称
Version 显示 ADO对象的版本信息
第 6章 ASP数据库编程
<%
Db,ConnectionString=―Dbq=‖&Server.mappath(―address.mdb‖)&_
‖;Driver={Microsoft Access Driver(*.mdb)}‖
%>
CommandTimeout,默认值为 30秒,如设定为 0则无限制直到执行
完毕。如设臵最长时间为 60秒:
<%db.CommandTimeout=60%>,在服务器慢时使用
ConnectionString,指定连接信息,如:
第 6章 ASP数据库编程
Connection对象常用属性举例
第 6章 ASP数据库编程
ConnectionTimeout,该属性默认值为 15秒,如设定为 0,则表
示无限期等待直到 Open方法完成为止。
DefaultDatabase,当数据提供者提供多个数据库时,用该属性
设定默认数据库
Mode,见下页
Version,显示 ADO的版本信息
Connection对象 常用属性举例
<%Response.write db.version%>
Connection对象的 mode属性
例子:
<%
Set
db=server.createObject(―A
DODB.Connection‖)
Db.mode=1
%>
以上例子设臵属性为只读,
将不能对数据库进行添加、
删除或更新记录。
Mode参数 整数值 说明
AdModeUnknown 0 未定义
AdModeRead 1 只读
AdModeWrite 2 只写
AdModeReadWrite 3 读写
第 6章 ASP数据库编程
6.2.2.3 Connection对象的方法
方法 说明
Open 建立与数据库的连接
Close 关闭与数据库的连接
Execute 执行数据库查询
BeginTrans 开始事务处理
CommitTrans 提交事务处理结果
RollbackTrans 取消事务处理结果
第 6章 ASP数据库编程
Open,打开连接
Close,关闭连接,如
<% Db.close
Set db=nothing
%>
Excute:执行数据库查询
Set Recordset对象
=Connection对象,Excute(SQL字符串 )
或
Connection对象, Excute(SQL字符串 )
Connection对象常用方法 详解
Connection对象,BeginTrans
第 6章 ASP数据库编程
BeginTrans:开始一个事务
连接数据库,建立 Connection对象,address.mdb下面将建立
查询记录,建立 Recordset对象实例 rs
strSql="select * from users"
Set rs=db.Execute(strSql)
Do While Not rs.Eof
Response.Write rs("name") & "<br>"
rs.Movenext
Loop
6.2.2.4 利用 Connection对象存取数据库
strConn="DBQ=" & Server.Mappath("address.mdb") &
";Driver={Microsoft Access Driver (*.mdb)}"
Set db=Server.CreateObject("ADODB.Connection")
db.Open strConn
第 6章 ASP数据库编程
利用 Connection对象存取数据库(续)
更新记录,将李玫的电话号码改为 66666666
strSql="update users set tel='66666666' where name='李玫 '"
db.Execute(strSql)
strSql="delete from users where name='李玫 '"
db.Execute(strSql)
strSql="insert into users(name,tel,email) values‖_
‖('李玫 ','888','limei@263.net')"
db.Execute(strSql)
删除记录,删除李玫的记录
添加记录
第 6章 ASP数据库编程
6.2.2.7事务处理
开始事务处理
db.BeginTrans
If db.Errors.Count=0 Then
Db.CommitTrans
Else
Db.RollbackTrans
End If
如果数据库执行成功,则提交事务
如果有错误,则回滚事务
第 6章 ASP数据库编程
6.2.3 Command对象
建立 Command对象
Command对象的属性
Command对象的方法
利用 Command对象存取数据库
非参数查询
参数查询
Parameter对象和 Parameters集合
第 6章 ASP数据库编程
6.2.3.1 建立 Command对象
建立 Command对象,语法如下
Set Command对象= Server.CreateObject(―ADODB.Command‖)
用 ActiveConnection属性指定要用的 Connection对象,语法如下
Command对象,ActiveConnection=Connection对象
建立对象的两种方法
通过 Connection对象建立 Command对象
直接建立 Command对象
第 6章 ASP数据库编程
建立 Command对象举例
Set db=Server.CreateObject(―ADODB.Connection‖)
db.open ―addr‖ ?addr是数据源
Set cmd=Server.CreateObject(―ADODB.Command‖)
cmd.ActiveConnection=db
直接建立 Command对象
通过 Connection对象建立 Command对象
Set cmd=Server.CreateObject(―ADODB.Command‖)
cmd.ActiveConnection=―addr‖
第 6章 ASP数据库编程
6.2.3.2 Command对象的常用属性
属性 说明
ActiveConnection 指定 Connection连接对象
CommandText 指定数据库查询信息
CommandType 指定数据查询信息的类型
CommandTimeout Command对象的 Execute方法的最长执行时间
Prepared 指定数据查询信息是否要先行编译、存储 00
第 6章 ASP数据库编程
Command对象的常用属性详细说明
ActiveConnection:
CommandText, 其值可以是 SQL语句,还可是表名、查询名或存储
过程名:
CommandTimeout, 默认为 30秒,若为 0,则永久等待,直至执行,
下面设臵为 60秒:
通过 Connection对象操作数据库,语法为:
Comman对象, ActiveConnection=Connection对象
没有明确建立 Connection对象,语法为:
Command对象,ActiveConnection=数据源名称字符串
Command对象,CommandText=SQL语句、表名、查询名或存储过程名
第 6章 ASP数据库编程
<%cmd.CommandTimeout=60%>
CommandType, 语法,Command对象,CommandType=类型值
Prepared, 语法,Command对象,Prepared=布尔值,
True表示先编译存储,False反之
CommandType类型值
类型值 相应数值 说明
adCmdUnknown -1
CommandText参数类型无法确定,
需要程序本身去分析确定,减缓
查询速度,是系统的默认值
adCmdText 1 SQL语句
adCmdTable 2 数据表名
adCmdStoreProc 4 查询名或存储过程名
第 6章 ASP数据库编程
6.2.3.3 Command对象的方法
方法 说明
Execute 执行数据库查询(可执行各种操作)
CreateParameter 用来创建一个 Parameter子对象
Command对象的常用方法:
Execute,语法有两种
Set Recordset对象 =Command对象,Execute
或
Command对象,Execute
第 6章 ASP数据库编程
Command对象的方法(续)
方法 说明
number 返回本次操作符合条件的记录总数
Parameters 该参数用来输入查询参数数组
Options 设定 CommandType类型
CreateParameter,创造一个新的 Parameter对象(参数对象),
主要是进行参数查询的时候使用
Execute
Command对象的 Execute方法的参数:
第 6章 ASP数据库编程
6.2.3.4 利用 Command对象存取数据库
建立 Connection对象
strConn="DBQ=" & Server.Mappath("address.mdb") &_
";Driver={Microsoft Access Driver (*.mdb)}"
Set db=Server.CreateObject("ADODB.Connection")
db.Open strConn
Set cmd= Server.CreateObject("ADODB.Command")
cmd.ActiveConnection=db
建立 Command对象
第 6章 ASP数据库编程
strSql="Select * From users"
cmd.CommandText= strSql
Set rs=cmd.Execute
添加记录
strSql ="insert into users(name,tel,email) values‖&_‖
―('李玫 ','88888888','limei@263.net')"
cmd.CommandText=strSql
cmd.Execute
查询记录
第 6章 ASP数据库编程
strSql ="update users set tel='66666666' where name='李玫 '"
cmd.CommandText=strSql
cmd.Execute
删除记录,删除李玫的记录
strSql="delete from users where name='李玫 '"
cmd.CommandText=strSql
cmd.Execute
更新记录
第 6章 ASP数据库编程
6.2.3.5 非参数查询
前提,在数据库中建立查询,查询名为 list
建立数据库连接,连接对象名为 db
建立 Command对象
Set cmd= Server.CreateObject("ADODB.Command")
cmd.ActiveConnection=db
执行查询 list
cmd.CommandType=4 '指定查询信息是查询名,可以
省略
cmd.CommandText= ―list‖ ?指定查询名称
Set rs=cmd.Execute
第 6章 ASP数据库编程
6.2.3.6 参数查询
建立 Connection对象 db,代码略
建立 Command对象
建立一个参数对象 prm,并将该对象加入到参数集合中 。
Set cmd= Server.CreateObject("ADODB.Command")
cmd.ActiveConnection=db
prm_name="input_name" '参数名称,在 list2中的变量
prm_type=200 '参数类型,200表示是变长字符串
prm_direction=1 '参数方向,1表示输出
prm_size=10 '参数大小,最大字节数为 10
prm_value=―李玫 ? '要传入的参数值
Set prm=cmd.CreateParameter(prm_name,prm_type,prm_direction,prm_size,prm_value)
cmd.Parameters.Append prm '将参数对象 prm加入到参数集合中
第 6章 ASP数据库编程
cmd.CommandType=4 '指定查询信息是查询名
cmd.CommandText= "list2" '指定查询名称
Set rs=cmd.Execute
下面执行查询 list2
参数查询(续)
第 6章 ASP数据库编程
6.2.3.7 Parameter对象和 Parameters集合
参数 说明
Append 将一个 Parameter对象加到 Parameters集合中
Delete 删除一个 Parameter对象
Item 取得集合内的某个对象
Refresh 重新整理 Parameters数据集合
Parameters集合的方法
Parameters集合的属性:
只有一个属性 count,用于返回 Parameters集合中 Parameter
对象数目,语法,Command对象,Paraneters.Count
第 6章 ASP数据库编程
Parameter对象和 Parameters集合(续)
建立 Parameter对象,语法:
Set Parameter对象
=Command对象,createParameter( name,type,direction,size,value)
Command对象的 CreateParameter方法的参数意义
参数 说明
Name 参数名称
Type 参数类型
Direction 参数方向
Size 参数大小,指定最长字节
Value 参数值
第 6章 ASP数据库编程
Parameter对象和 Parameters集合(续)
参数 相应数值 说明
adDBTimeStamp 135 日期时间类型
adInteger 3 整数
adSingle 4 单精度小数
adDouble 5 双精度小数
adVarChar 200 变长字符串
Type取值
第 6章 ASP数据库编程
Parameter对象和 Parameters集合(续)
Direction取值
参数 相应数值 说明
adParamInput 1 传入
adParamOutput 2 传出
adParamInputOutput 3 传入传出
adParamReturnValue 4 从子程序返回数据到该参数中
Parameter对象的方法只有 AppendChunk一个,用于
添加数据到 Parameter对象的末尾,语法为:
Parameter对象,AppendChunk( 长文本或二进制数据)
第 6章 ASP数据库编程
Parameter对象和 Parameters集合(续)
6.2.4 Recordset对象
建立 Recordset对象
第 6章 ASP数据库编程
Recordset对象的方法
Recordset对象属性
利用 Recordset对象查询记录
分页显示数据
利用 Recordset对象更新数据库
Field对象和 Fields集合
6.2.4.1 建立 Recordset对象
建立 Recordset对象,标准语法是:
Set Recordset对象 =server.createobject(―ADODB.Recordset‖)
然后用 open方法打开一个数据库,语法是:
Recordset对象,open
[source],[activeconnection],[cursortype],[locktype],[option]
第 6章 ASP数据库编程
属性 说明 语法
Source Command对象名或 SQL语句或
数据表名
Recordset对象,source=数据库查询信
息
ActiveConnection Connection对象名或包含数
据库连接信息的字符串
Recordset对象, ActiveConnection=
数据库连接信息
cursorType Recordset对象记录集中的
指针类型,可省略
Recordset对象, cursorType= 取值
( 0或 1或 2或 3)
Locktype Recordset对象的使用类型,
可省略
Recordset对象, Locktype= 取值( 1
或 2或 3 或 4)
Maxrecords 控制从服务器取得的记录集
的最大记录数目
Recordset对象, Maxrecords
cursorlocation 控制数据处理的位臵,客户
端还是服务器端
Recordset对象, cursorlocation= 取
值( 1或 2或 3 )
6.2.4.2 Recordset对象常用属性
第 6章 ASP数据库编程
属性 说明 语法
Filter 控制欲显示的内容 Recordset对象, Filter= 整数值 (0/1/2/3)
Recordcount 记录集的总数 Recordset对象, Recordcount
Bof 记录集的开头 Recordset对象, Bof
(如是记录集开头返回 true,否则 false)
Eof 记录集的结尾 Recordset对象, Eof
(如是记录集开头返回 true,否则 false)
pagesize 数据分页显示时每一页的
记录数
Recordset对象, Pagesize= 整数
Pagecount 数据分页显示时数据页的
总数
Recordset对象, Pagecount
Absolutepage 当前指针所在的数据页 Recordset对象, Absolutepage= 整数
absoluteposition 当前指针所在的记录行 Recordset对象, Absoluteposition= 整数
6.2.4.2 Recordset对象常用属性(续)
第 6章 ASP数据库编程
6.2.4.3 建立 Recordset对象的几种方法
Set db=Server.CreateObject("ADODB.Connection")
db.Open "DSN=addr" '这里利用数据源连接
Set rs=db.execute(―select * from users") '建立 Recordset对象
利用 Connection对象的 Execute方法建立
‘ 建立数据库连接对象 db
'建立 Command对象
Set cmd= Server.CreateObject("ADODB.Command")
cmd.ActiveConnection=db
cmd.CommandText= ―select * from users"
Set rs=cmd.Execute
利用 Connection对象的 Execute方法建立
第 6章 ASP数据库编程
利用 Connection对象的 Execute方法的另一种方式
Set db=Server.CreateObject("ADODB.Connection")
db.Open "DSN=addr"
Set rs=Server.CreateObject("ADODB.Recordset")
Rs.open ―select * from users‖,db
利用 Connection对象的 Execute方法建立
‘ 假设已经建立数据库连接对象 db,然后
Set cmd= Server.CreateObject("ADODB.Command")
cmd.ActiveConnection=db
cmd.CommandText= ―select * from users"
Set rs=server.createobject(―ADODB.recordset‖)
Rs.open cmd
第 6章 ASP数据库编程
6.2.4.3 建立 Recordset对象的几种方法 (续 )
直接建立 Recordset对象
Set rs=server.createobject(―ADODB.recordset‖)
Rs.Open ―select * from users‖,―Dsn=addr‖
第 6章 ASP数据库编程
6.2.4.3 建立 Recordset对象的几种方法 (续 )
Recordset对象的方法
1,Open, 打开记录集,语法为
Recordset对象,open
[source],[activeconnection],[cursortype],[locktype],[options]2,Close:关闭记录集对象,语法:
Recordset对象,close
3,Requery,重新打开记录集,即先关闭再打开,语法:
Recordset对象,requery
4,Moveprevious,将记录指针移到上条记录,即向后移动一条,语法:
Recordset对象,moveprevious
5,Movefirst:将记录指针移动到第一条记录,语法:
Recordset对象,movefirst
第 6章 ASP数据库编程
Recordset对象的方法(续)
6,movenext, 将记录指针移到下条记录,即向前移动一条,语法为
Recordset对象, movenext
7,movelast:将记录指针移到最后一条记录,语法:
Recordset对象,movelast
8,move,将记录指针移动指定记录,语法:
Recordset对象, move
9,addnew,向数据库添加记录,语法:
Recordset对象,addnew 字段名数组,字段值
10,Delete,删除当前记录,语法:
Recordset对象,delete
第 6章 ASP数据库编程
Recordset对象的方法(续)
11,update, 更新数据库数据,语法为
Recordset对象, update
12,cancelupdate:取消更才的更新动作,语法:
Recordset对象, cancelupdate
13,getrows,从记录集中当前记录开始返回多条 (number,-1表示全部 )
记录,将符合要求的数据返回给一个二维数组( vararry),第一维
表示字段(列)第二维表示记录(行),语法:
Vararry=Recordset对象, Getrows(number)
14,resync,让客户端记录集与服务器同步更新,参数为 1或 2或 3,语法:
Recordset对象,resync[参数 ]
第 6章 ASP数据库编程
6.2.4.4利用 recordset对象查询记录
关闭 Recordset对象,关闭 Connection对象,代码略
建立 Connection对象 db,代码略
建立 Recordset对象
Set rs=Server.CreateObject("ADODB.Recordset")
strSql ="Select * From users"
rs.Open strSql,db
查询记录
Do While Not rs.Eof
Response.Write rs("name") & "<br>" '循环输出姓名字段值
rs.Movenext
Loop
第 6章 ASP数据库编程
? 分页所需条件 ? 记录集中的对应属性
1,rs.RecordCount
2,rs.PageSize
4,rs.AbsolutePage
1、总共有多少条记录?
2、每页显示几条记录?
3、总共有几页?
4、当前要显示哪一页?
3,rs.PageCount
第 6章 ASP数据库编程
6.2.4.5 分页显示数据
分页显示数据(续)
?记录集中的对应属性
1,rs.RecordCount
//直接得到记录集的记录总数
2,rs.PageSize
//需要赋值,如:每页显示 5条。 rs.PageSize=5
3,rs.PageCount
//直接得到属性值
4,rs.AbsolutePage
//需要赋值,如:当前显示第二页。 rs.AbsolutePage=2
第 6章 ASP数据库编程
? 如何动态的打印页码
<% For I=1 To rs.PageCount
Response.Write I //打印页码 I
Next %>
? 如何翻页
使用 For 循环实现:
1、确定循环的初值,如果 rs不为空,则初值是 1
2、确定循环的终值,取得 rs.PageCount属性值
改变 rs.AbsolutePage属性值
如:要浏览第二页,则 rs.AbsolutePage=2
第 6章 ASP数据库编程
? 如何通过页码实现翻页
在网页之间传递数据。本例为在本页传递页码值。
1、打印页码时,给页码加上超链接,并在链接地址后传递页码值。
链接地址为本页;
<% Response.Write "<a href='9-8.asp?page_no=" & I & "'>" & I & "</a> " %>
<% If Request.QueryString("page_no")="" Then
page_no=1
Else
page_no=Cint(Request.QueryString("page_no"))
End If
rs.AbsolutePage=page_no
%>
2、接收传递的页码值,并将页码值赋值给 rs.AbsolutePage 属性。
第 6章 ASP数据库编程
? 怎样显示当前页面的记录
确定循环的条件表达式
<% I=rs.PageSize '设置计数器, 每页最多循环 5次
Do While Not rs.Eof And I>0 '循环直到当前页结束或记录集结尾
I=I-1
Response.Writers(―bookname")& "<br>" '输出姓名字段值
rs.MoveNext
Loop
%>
1、确定是否指向记录集的 BOF或者 EOF
2,确定是否已提取了 5条
显示纪录
第 6章 ASP数据库编程
? 其它
打印页码时,当前页面的页码和非当前页面的页码的区别:
当前页面的页码不加超链接;非当前页面的页码加上超链接。
<%
For I=1 To rs.PageCount
If I=Page_no Then
Response.Write I //打印页码 I
Else
Response.Write "<a href='9-8.asp?page_no="& I & "'>" & I & "</a>"
Next
%>
第 6章 ASP数据库编程
6.2.4.6 利用 Recordset对象更新数据库
建立 Connection对象
建立 Recordset对象
第 6章 ASP数据库编程
Set db=Server.CreateObject("ADODB.Connection")
db.Open "DSN=addr" '这里利用数据源连接
Set rs=Server.CreateObject("ADODB.Recordset")
strSql ="Select * From users"
rs.Open strSql,db,0,2 '注意参数,锁定类型为可以修改
利用 Recordset对象更新数据库 - 添加记录
Dim fields(2),values(2)
fields(0)="name"
fields(1)="Tel"
fields(2)="email"
values(0)="李玫 "
values(1)="88888888"
values(2)="limei@263.net"
rs.AddNew fields,values
rs.Update
第 6章 ASP数据库编程
更新记录(修改李玫的电话号码)
删除记录,删除李玫的记录
关闭 Connection对象
利用 Recordset对象更新数据库
第 6章 ASP数据库编程
Dim fields2(0),values2(0)
fields2(0)="tel"
values2(0)="66666666"
rs.Update fields2,values2
rs.Delete
rs.Update
db.Close
Set db=nothing
6.2.4.7 Field对象和 Fields集合
Field对象,fields.count
2,Fields集合的方法,只有一个 item方法,建立某个
field对象,语法为:
Set field对象 =recordset对象,fields.item(字段名或字段索引值 )
3.field对象的属性:最有用的属性是 value,获取数据库
的字段值,语法为,field对象,value
4,Field对象的方法只有一个 appendchunk,用于在当前
数据末尾添加数据,语法为,field对象,appendchunk data
1,Field集合的属性:只有 count属性,返回记录集中
字段( field对象)的个数,语法为:
第 6章 ASP数据库编程
6.2.5 存取 SQL Server数据库
已知:建立 SQL数据库 sqltest,登录帐号 tt,密码 11,
ODBC数据源名称为 test。 连接方法如下:
创建没有 ODBC数据源的连接
创建有 ODBC数据源的连接
创建基于 OLE DB的连接
Set db=server.createobject(―adodb.connection‖)
Db.open ―dsn=test;uid=tt;pwd=11‖
Set db=server.createobject(―adodb.connection‖)
Db.open ―provider=SQLOLEDB;server=localhost;database=sqltest; ‖&_
‖ uid=tt;pwd=11; driver={sql server}‖
第 6章 ASP数据库编程
Set db=server.createobject(―adodb.connection‖)
Db.open ―server=localhost;database=sqltest;uid=tt;pwd=11;driver={sqlserver}‖
6.2.6 对多个表进行组合查询
连接数据库进行查询同对单个表进行查询,
组合查询只是数据库连接语句不同,举例:
表 users包含序号、用户名、密码、真实姓名、电子邮箱、注册时间,表
daylog包含用户名、登录时间、登录 ip。 现在要从 users中选取真实姓名,
从 daylog中选取登录时间和登录 ip。 Sql语句的写法是:
Strsql=―select users.realname,daylog.log_date,daylog_ip from‖&_
‖users,daylog where users.user_name=daylog.user_name‖
第 6章 ASP数据库编程
文件存取组件
广告轮显组件
浏览器兼容组件
文件超链接组件
计数器组件
发送 E-mail组件 W3 Jmail
文件上传组件 ASPUpload
第 7章 文件存取组件及其它组
文件存取组件
文件存取组件常用对象列表
参数 说明
FileSystemObject 几乎包含处理文件和文件夹的所有方法
TextStream 主要用于存取文本文件
File 此对象的方法和属性可以处理单个文件
Folder 此对象的方法和属性可以处理文件夹
FileSystemObject对象的方法
方法 说明
CreatTextFile 新建一个文本文件
OpenTextFile 打开一个已有的文本文件
GetFile 返回一个 file对象
CopyFile 复制文件
MoveFile 移动文件
DeleteFile 删除文件
FileExists 判断文件是否存在
GetFileName 返回一个指定文件的主文件名
GetExtensionName 返回一个指定文件的扩展名
方法 说明
GetFileName 返回一个指定文件的完整的文件名
GetFolder 返回一个 folder对象
CreateFolder 创建一个文件夹
CopyFolder 复制一个文件夹
MoveFolder 移动一个文件夹
DeleteFolder 删除一个文件夹
FolderExists 判断文件夹是否存在
GetParentFolderName 返回上一级文件夹名
GetExtensionName 返回一个指定文件的扩展名
FileSystemObject对象的方法 (续)
方法 说明 语法
Close 关闭一个已打开的数据文件 TextStream对象,close()
Read 从光标的当前位臵开始从打开的文本文件中读取
一定的字符数目
TextStream对象,read(charnum)
Readall 读取一个已打开的数据流文件内的所有数据 String=textstream对象,readall
返回一字符串
Readline 读取一个已打开的数据流文件的一行数据 String= TextStream对象,readline
Skip 跳过已打开的数据流文件内的字符数目 TextStream对象,skip(字符数目 )
Skipline 跳过一个已打开的数据流文件的一行数据 TextStream对象,skipline
Write 写入数据到一已打开的数据流文件 TextStream对象,write(string)
Writeline 写入数据到一已打开的数据流文件内的一整行数
据
TextStream对象,writeline(string)
writeblankline 指定欲写入的新行数目 TextStream对象,
Writeblankline(lines)
TextStream对象的属性和方法
TextStream对象的属性
属性 说明 语法
Atendofline 当光标位于当前行的末尾时,其值为true,否则 false TextStream对象, Atendofline
Atendofstream 当光标位于文件的末尾时,其值为 true,否则 false TextStream对象, Atendofstream
Column 计算从行首到当前光标位臵的字符数 TextStream对象, Column
Line 计算光标所在行在整个文件中的行号 TextStream对象, Line
文本文件的基本操作
文本文件的读取和添加
Set FileSystem对象实例
=server.createobject(―scripting.filesystemobject‖)
Set textstream对象实例
= FileSystem对象实例,createtextfile(filename[,overwrite])说明,filename指定欲建立的文件名称及其路径
Overwrite在建立文件时,如果存在同名的文件是否允许覆盖
True为允许,false不允许,默认 false
Set textstream对象
=filesystem对
象,opentextfile(filename[,[iomode],[overwrite] ])
新建文本文件
文件及文件夹的基本操作
文件的复制、移动和删除
复制,FileSystemObject对象实例,copy 源文件,目标文件 [,overwrite]
移动,FileSystemObject对象实例,movefile 源文件,目标文件
删除,FileSystemObject对象实例,deletefile文件
说明:
复制时,overwrite为 true时,表示可以覆盖,否则不可以,默认为 true
移动时,如果目标文件存在会报错
复制、移动和删除都可以使用通配符
判断文件是否存在返回 true或 false
说明:
复制时,overwrite为 true时,表示可以覆盖,否则不可以,默认为 true
移动时,如果目标文件存在会报错
复制、移动和删除都可以使用通配符
判断文件是夹否存在返回 true或 false
文件及文件夹的基本操作
文件夹的新建、复制、移动和删除
新建,FileSystemObject对象实例,createfolder文件夹
复制,FileSystemObject对象实例,copy 源文件夹,目标文件夹
[,overwrite]
移动,FileSystemObject对象实例,movefile 源文件夹,目标文件夹
删除,FileSystemObject对象实例,deletefile文件夹
文件夹是否存在,FileSystemObject对象实例,folderexists(文件夹 )
Folder对象的属性和方法
属性 说明
Attributes 返回文件夹属性
Datecreated 返回该文件夹的创建日期和时间
Datelastaccessed 返回最后一次访问该文件夹的日期和时间
Datelastmodified 返回最后一次修改该文件夹的日期和时间
Drive 返回该文件夹对应的驱动器字母
Files 返回文件夹中所有的文件
Name 设定或返回文件夹的名字
Isrootfolder 返回一个布尔值说明该文件夹是否是当前驱动器
的根文件夹
Parentfolder 返回该文件夹的父文件夹对应的 folder对象
Path 返回该文件夹的绝对路径
Size 返回指定文件夹的大小
Subfolders 返回文件夹中所有的子文件夹
广告轮显组件
属性 说明 语法
Border 确定广告图片的边框
宽度
Ad.border=size
Size为正整数值,表示边框大小
Clickable 确定该广告图片是否
提供超链接功能
ad.clickable=boolean
Boolean为 true表示提供超链接,否则不提
供
targerframe 确定超链接的 web页
面
Ad.targetframe=―target=?targetname‘‖
Targetname,超链接的窗口或框架名称
getadvertisement 取得广告信息文件 Ad.getadvertisement(广告信息文件路径
字符串 )
广告轮显组件的属性和方法
广告轮显组件
方法 说明 语法
Border 确定广告图片
的边框宽度
Ad.border=size
Size为正整数值,表示边框大小
Clickable 确定该广告图
片是否提供超
链接功能
ad.clickable=boolean
Boolean为 true表示提供超链接,否则不提供
targerframe 确定超链接的
web页面
Ad.targetframe=―target=?targetname‘‖
Targetname,超链接的窗口或框架名称
广告轮显组件的方法
使用广告轮显组件示例
使用该组件需要 3个文件
广告信息文本文件:记录所有广告信息的文本文件
超链接处理文件:引导客户到相应广告网页的 asp文件
显示广告图片文件:放臵广告图片的文件,比如个人主页首页
举例说明
建立广告信息文本文件
建立超链接处理文件
建立显示广告图片文件
点击链接查看代码示例
浏览器兼容组件
浏览器兼容组件的工作原理
浏览器兼容组件的属性
使用浏览器兼容组件示例
浏览器兼容组件的工作原理
客户端连接到服务器端
发出请求,包含一个 user_agent页眉,该页眉包含客户端
浏览器的种类及版本信息
浏览器兼容组件把页眉信息欲一个名为 browscap.ini的文
件匹配,browscap.ini位于服务器上
浏览器兼容组件找到相互匹配的浏览器时,就家丁所有客
户端浏览器性质和该文件所记录的一致
浏览器兼容组件找不到相互匹配的浏览器时,则自动执行
browscap.ini内所设定的默认浏览器信息
从网站 http:/www.cyscape.com/browscap可下载最新的
browscap.ini
浏览器兼容组件的属性
属性 说明
Browser 浏览器类型名称
Version 浏览器版本名称
Majorver 浏览器主版本
Minorver 浏览器次版本
Frames 是否支持框架功能
Tables 是否支持表格功能
Cookies 是否支持 cookies
Backgroundsounds 是否支持背景音乐
Vbscript 是否支持 vbscript
Javascript 是否支持 Javascript
Javaapplets 是否支持 Java小程序
Acrivexcontrols 是否支持 Acrivexcontrols控件
使用浏览器兼容组件示例
语法:
Set 对象实例 =server.createobject(―MSWC.BrowserType‖)
对象实例,属性
显示客户端浏览器特性示例
文件超链接组件
文件超链接组件的方法
使用文件超链接组件示例
文件超链接组件的方法
方法 语法 说明
Getlistcount N=对象实例,getlistcount(string) 得到文件中包含的超链接址数
Getlistindex N=对象实例, Getlistindex (string) 显示当前页在这些链接地址中的
位臵
getnexturl data=对象实例, getnexturl(string) 显示链接文件中下个文件的地址
getpreviousurl data =对象实例,
getpreviousurl(string)
显示链接文件中上个文件的地址
getnextdescription data =对象实例,
getnextdescription(string)
显示链接文件中下地址的描述
getpreviousdescripti
on
data =对象实例,
getpreviousdescription(string)
显示链接文件中上地址的描述
getnthurl data =对象实例,
getnthurl(string,index)
显示链接文件中第 n文件地址
Getnthdescription data =对象实例,
Getnthdescription(string,index)
显示链接文件中第 n文件描述
使用文件超链接组件示例
使用该组件需要两个文件
超链接数据文件:关于 web站点网址、其他文件的数据文件,是
一个文本文件
显示超链接文件:即显示超链接的文件
举例说明:
建立超链接数据文件
建立显示文件
计数器组件
属性 /方法 说明
Hits(page) 返回指定 page的访问次数,如 page省略,则返回当前页访问次数
Pagehit() 增加当前网页的访问次数
Reset(page) 设臵由 page指定的网页的访问次数为 0
使用计数器组件示例
计数器组件的属性和方法
发送 E-mail组件 W3 Jmail
下载和安装 W3 Jmail组件,免费下载网址:
http://www.dimac.net/FreeDownloads/FreeDownloadsstart.asp
下载后根据向导安装即可
使用 W3 Jmail组件发送邮件
使用第三方组件
属性方法 功能 属性方法 功能
From 发件人 email地址 Subject 邮件主题
Fromname 发件人姓名 Body 邮件内容
addrecipient 添加收件人 email地址 addattachment 添加附件
Send 执行发送 Close 关闭对象
Version W3 Jmail的版本号
常用语句:
<%
Set jmail=server.createobject(―jmail.message‖) ?建立一个组件实例
Jmail.addrecipient yuezy@263.net ?第一个收件人
Jmail.addrecipient jjshang@gse.pku.edu.cn ?第二个收件人
…… ’
可以再加收件人
Jmail.from=jjshang99@163.com ?发件人地址
Jmail.fromname=―尚俊杰 ? ‘ 发件人姓名
Jmail.subject=―你好 ? ‘ 发件人主
题
Jmail.body=―测试发信组件 ? ‘ 信件内容
Jmail.addattachment ―c:\my documents\test.txt‖ ‘附件
Jmail.send(―smtp.163.com‖) ?执行发送,括号中是发信服务器
Jmail.close ?发送完毕,关闭该对象
%>
具体例子源代码
文件上传组件 ASPUpload
下载和安装 ASPUpload组件
下载地址是,http://www.persits.com/aspupload.asp
安装时根据向导安装即可
使用 ASPUpload组件上传文件
上传组件的属性
属性设臵 功能
Overwritefiles 能否覆盖文件。 Boolean默认为 true,表示可以覆盖
方法 功能
Save 保存文件到某文件夹
Files 获取上传文件对象的方法
Form 获取上传表单元素的方法
Setmaxsize 设臵上传文件最大字节数
上传组件的方法
上传文件的属性
属性 功能
Name 上传表单中的表单元素的名字
Filename 上传文件的名字
Path 上传后文件的路径
Size 上传后文件的大小(字节数)
上传文件示例
上传文件表单文件源代码
上传单个文件执行程序源代码
上传多个文件表单源代码
上传多个文件执行文件源代码