第 6章 ASP数据库编程
? 学习连接数据库
? 实现查询、添加、删除和修改功能
? 了解 ADO的几大对象及相互关系
? 学习各种事务处理和分页显示数据
? 学习连接 SQL Server数据库的语句。
6.1 ASP存取数据库
目的与要求
熟练掌握连接数据库的两种方式
利用 Select语句查询记录,Insert语句添加、
Delete语句删除,Update语句修改记录
了解 ADO的几大内部对象,Connection对象、
Recordset对象,Command对象的概念和相互关系
会使用事务处理、会分页显示
连接 SQL Server数据库的语句
?了解 ADO的几大内部对象,Connection对象、
Recordset对象,Command对象的概念和相互关系
?会使用事务处理、会分页显示
?连接 SQL Server数据库的语
目的与要求:(续)
? 数据库连接和 SQL语句的写法
? 利用 execute方法和 sql语句实现查询、添
加、修改、删除
? 利用 Connection对象,Recordset对象、
Command对象实现数据库的深入操作,如
分页显示等 (难点 )
重点难点
组 件 说 明
数据库存取组件 用来存取数据库,是所有内置组件中最强大的
文件存取组件 用来存取文件,提供文件的输入输出方法
广告轮显组件 轻松构建广告页面,维护、修改方便
浏览器兼容组件 根据客户端浏览器类型送出正确的 Web页面
文件超链接组件 建立象书本的索引或目录一样的超链接 Web页面
计数器组件 轻松统计网页访问次数
ASP内部组件概述
数据库存取组件简介:
数据库存取组件是使用 ADO技术存取数据库的一种 ASP内置组
件,是 ASP内置组件中最重要的和使用最多的一个组件。
ADO包括三个主要对象是,Connection,Command和 Recordset
以下将以网络导航为例讲解
连接数据库、查询记录、添加记录、删除记录、修改记录
利用数据库存取组件存取数据库
数据库准备
在 Access中建立数据库 wwwlink.mdb,存放在
C:\inetpub\wwwroot目录下,如图
连接数据库
<%
Set db=server.CreateObject(“ADODB.Connection”)
Db.open,wlink”
%>
连接数据库,要用到 Connection对象,具体连接方法有两种:
第一种:利用数据源连接
特点:连接简单,但需要在服务器设置数据源
假设配置的数据源名字为 wlink,则代码如下
连接数据库
不用数据源的连接方法
优点:方便在机器之间移植代码
代码举例 (假设数据库与页面在同一目录下 ):
<%
Set db=server.CreateObject(“ADODB.Connection”)
Db.open,dbq=c:\inetpub\wwwroot\wwwlink.mdb;”&_
“Driver={Microsoft Access Driver(*.mdb)}”
%>
连接数据库
对于第二种方法,还可采用 Server对象的 Mappath方法,
修改为:
<%
Set db=server.CreateObject(“ADODB.Connection”)
Db.open,dbq=”&server.mappath(“wwwlink.mdb”)&_
“;Driver={Microsoft Access Driver(*.mdb)}”
%>
6.1.2.4 利用 select语句查询记录
查询时用 Connection对象的 Execute方法打开一个记录集
然后在记录集中移动记录指针依次显示所有记录
下面建立一个 Connection对象实例 db
<%
set db=Server.Createobject("ADODB.Connection")
db.Open "DBQ="&Server.Mappath("wwwlink.mdb")&_
";DRIVER={Microsoft Access Driver (*.mdb)};"
%>
建立 Recordset对象实例 rs
dim strsql,rs
strsql="select * from link order by link_id desc"
'按降序排列
set rs=db.Execute(strsql)
利用 select语句查询记录(续)
6.1.2.5 利用 insert语句添加记录
添加记录,利用 Connection对象的 Execute方法,不必
返回记录集。
连接数据库,建立一个 Connection对象实例 db
set db=Server.Createobject("ADODB.Connection")
db.Open "DBQ="&Server.Mappath("wwwlink.mdb")&_
";DRIVER={Microsoft Access Driver (*.mdb)};"
varName=Request("name")
varURL=Request("URL")
varIntro=Request("intro")
获取上个页面的插入信息
利用 insert语句添加记录 (续 )
插入 Sql语句的写法
StrSql="insert into link(name,URL,intro,”&_
”submit_date) values(?" &varName &,?,?" &_
varURL &,?,?" &_ varIntro &,?,?" & Date() &,?)"
利用 Execute方法,添加记录
db.execute(strSql)
利用 insert语句添加记录 (续 )
删除记录,利用 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)};"
传过来的要删除的记录的记录编号
varLink_id=Request.QueryString("link_id“)
strSql="delete from link where link_id=" & varLink_id
删除 SQL语句的写法
利用 Execute方法,删除记录
db.Execute(strSql)
利用 Delete删除记录(续)
6.1.2.7 利用 Update修改语句
修改记录,利用 Connection对象的 Execute方法。
获取传入的要修改的 Link_ID
varLink_id=Request.QueryString("link_id")
建立 Recordset对象实例 rs
strSql=“select * from link where link_id=” & varLink_id
?varLink_id是传过来的
set rs=db.Execute(strSql)
连上数据库,建立一个 Connection对象实例 db
set db=Server.Createobject("ADODB.Connection")
db.Open "DBQ="&Server.Mappath("wwwlink.mdb")&_
";DRIVER={Microsoft Access Driver (*.mdb)};"
利用 Update修改语句(续)
6.2 深入进行数据库编程
ADO的内部对象
Connection对象
Command对象
Recordset对象
存取 SQL Server对象
对多个表进行组合查询
6.2.1 ADO的内部对象
ADO的主要对象和功能说明
对 象 说 明
Connection 用来建立与数据库的连接
Command 用来对数据库执行命令,如查询、添加、删除、修改记录
Recordset 用来得到从数据库返回的记录集
6.2.2 Connection对象
学习 Connection对象的重点:
如何建立 Connection对象
Connection对象的 Execute方法
事务处理功能
注意事项
需明确建立 Connection对象,不明确时将利用 Command或
Recordset对象直接连接数据库。这样无法利用 Connection对象的
许多功能
Connection对象一般用来连接数据库,也可用来查询、添加、删
除或修改记录,但有一定局限性,如无法完成分页
6.2.2.1 建立 Connection对象
第一步:建立对象,语法如下:
Set Connection 对象 =Server.CreateObject(“ADODB.Connection”)
第二步:用 open方法来打开连接,语法如下
Connection 对象,open,参数 1=参数 1的值 ;参数 2=参数 2的
值 ;……,
Connection对象的 Open方法的参数
说明,
参数不会都用到,如
Access数据库就不用
User和 Password
连接方式不同,参数不
同,如数据源用 DSN,而
不用数据源就用 DBQ和
Driver
多个参数之间用分号隔
开,顺序无关系
参 数 说 明
DSN ODBC数据源名称
User 数据库登录帐号
Password 数据库登录密码
Driver 数据库类型(驱动程序)
Dbq 数据库的物理路径
Provider 数据提供者
6.2.2.2 Connection对象的属性
属 性 说 明
Attribute 设置 Connection对象控制事务处理时的行为
CommandTimeout Execute方法的最长执行时间
ConnectionString 指定 Connection对象的数据库连接信息
ConnectionTimeout Open方法与数据库连接的执行最长时间
CursorLocation 控制光标的类型
Connection对象的属性 (续)
属 性 说 明
DefaultDatabase 指定 Connection对象的缺省数据库名称
IsolationLevel 指定 Connection对象的事务处理时机
Mode 指定数据库连接的权限
Provider 设置 Connection对象内定的数据库管理程序名称
Version 显示 ADO对象的版本信息
<%
Db,ConnectionString=“Dbq=”&Server.mappath(“address.mdb”)&_
”;Driver={Microsoft Access Driver(*.mdb)}”
%>
CommandTimeout,默认值为 30秒,如设定为 0则无限制直
到执行完毕。如设置最长时间为 60秒:
<%db.CommandTimeout=60%>,在服务器慢时使用
ConnectionString,指定连接信息,如:
Connection对象常用属性举例
ConnectionTimeout,该属性默认值为 15秒,如设定为 0,
则表示无限期等待直到 Open方法完成为止。
DefaultDatabase,当数据提供者提供多个数据库时,用
该属性设定默认数据库
Version,显示 ADO的版本信息
Connection对象 常用属性举例
<%Response.write db.version%>
Connection对象的 mode属性
Mode参数 整数值 说明
AdModeUnknown 0 未定义
AdModeRead 1 只读
AdModeWrite 2 只写
AdModeReadWrite 3 读写
例子:
<%
Set db=server.createObject(“ADODB.Connection”)
Db.mode=1
%>
以上例子设置属性为只读,将不能对数据库进行
添加、删除或更新记录。
Connection对象的 mode属性(续)
6.2.2.3 Connection对象的方法
方法 说明
Open 建立与数据库的连接
Close 关闭与数据库的连接
Execute 执行数据库查询
BeginTrans 开始事务处理
CommitTrans 提交事务处理结果
RollbackTrans 取消事务处理结果
Open,打开连接
<% Db.close
Set db=nothing
%>
Excute:执行数据库查询
Set Recordset对象
=Connection对象,Excute(SQL字符串 )

Connection对象, Excute(SQL字符串 )
Connection对象常用方法详解
Connection对象,BeginTransBeginTrans:开始一个事务
Close,关闭连接
Db.open
连接数据库,建立 Connection对象,address.mdb下面将建立
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
查询记录,建立 Recordset对象实例 rs
strSql="select * from users"
Set rs=db.Execute(strSql)
Do While Not rs.Eof
Response.Write rs("name") & "<br>"
rs.Movenext
Loop
利用 Connection对象存取数据库(续)
strSql="insert into users(name,tel,email) values”_
”('李玫 ','888','limei@263.net')"
db.Execute(strSql)
添加记录
利用 Connection对象存取数据库(续 )
更新记录,将李玫的电话号码改为 66666666
strSql="update users set tel='66666666' where name='李玫 '"
db.Execute(strSql)
strSql="delete from users where name='李玫 '"
db.Execute(strSql)
删除记录,删除李玫的记录
6.2.2.7 事务处理
开始事务处理
db.BeginTrans
If db.Errors.Count=0 Then
Db.CommitTrans
Else
Db.RollbackTrans
End If
如果数据库执行成功则提交事务,如果有错误,则回滚事务
6.2.3 Command对象
建立 Command对象
Command对象的属性
Command对象的方法
利用 Command对象存取数据库
非参数查询
参数查询
Parameter对象和 Parameters集合
6.2.3.1 建立 Command对象
建立 Command对象,语法如下
Set Command对象= Server.CreateObject(“ADODB.Command”)
用 ActiveConnection属性指定要用的 Connection对象,语法,
Command对象,ActiveConnection=Connection对象
建立对象的两种方法
通过 Connection对象建立 Command对象
直接建立 Command对象
建立 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.2.3.2 Command对象的常用属性
属 性 说 明
ActiveConnection 指定 Connection连接对象
CommandText 指定数据库查询信息
CommandType 指定数据查询信息的类型
CommandTimeout Command对象的 Execute方法的最长执行时间
Prepared 指定数据查询信息是否要先行编译、存储 00
Command对象的常用属性详解
ActiveConnection:
CommandText, 其值可以是 SQL语句,还可是表名、查询名
或存储过程名:
通过 Connection对象操作数据库,语法为:
Comman对象, ActiveConnection=Connection对象
没有明确建立 Connection对象,语法为:
Command对象,ActiveConnection=数据源名称字符串
Command对象,CommandText=SQL语句、表名、查询名或存储过程名
CommandTimeout, 默认为 30秒,若为 0,则永久等待,直至
执行,下面设置为 60秒,<%cmd.CommandTimeout=60%>
Command对象的常用属性详解 (续 )
CommandType, 语法,Command对象,CommandType=类型值
Prepared, 语法:
True表示先编译存储,False反之
Command对象,Prepared=布尔值
CommandType类型值
类型值 相应数值 说明
adCmdUnknown -1
CommandText参数类型无法确定,
需要程序本身去分析确定,减缓
查询速度,是系统的默认值
adCmdText 1 SQL语句
adCmdTable 2 数据表名
adCmdStoreProc 4 查询名或存储过程名
Command对象的常用属性详解 (续 )
6.2.3.3 Command对象的方法
方法 说明
Execute 执行数据库查询(可执行各种操作)
CreateParameter 用来创建一个 Parameter子对象
Command对象的常用方法:
Execute,语法有两种
Set Recordset对象 =Command对象,Execute

Command对象,Execute
Command对象的方法(续)
方 法 说 明
number 返回本次操作符合条件的记录总数
Parameters 该参数用来输入查询参数数组
Options 设定 CommandType类型
CreateParameter,创造一个新的 Parameter对象(参数对象)
,主要是进行参数查询的时候使用
Command对象的 Execute方法的参数:
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对象
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
查询记录
利用 Command对象存取数据库(续)
strSql ="update users set tel='66666666' where name='李玫 '"
cmd.CommandText=strSql
cmd.Execute
删除记录,删除李玫的记录
strSql="delete from users where name='李玫 '"
cmd.CommandText=strSql
cmd.Execute
更新记录
利用 Command对象存取数据库(续)
6.2.3.5 非参数查询
建立 Command对象
Set cmd= Server.CreateObject("ADODB.Command")
cmd.ActiveConnection=db
执行查询 list
cmd.CommandType=4 ?指定查询信息是查询名可以省略
cmd.CommandText=,list” ?指定查询名称
Set rs=cmd.Execute
6.2.3.6 参数查询
在建立查询时,可以使用参数,如下面 input_name就是一
个参数:
执行时和非参数查询类似,但是要注意需要传入参数。
Select * From users Where name=input_name
6.2.3.7 Parameter对象和 Parameters集合
Parameters集合的属性:
只有一个属性 count,用于返回 Parameters集合中 Parameter
对象数目,语法,Command对象,Paraneters.Count
建立 Parameter对象,语法:
Set Parameter对象
=Command对象,createParameter( name,type,direction,size,value)
参 数 说 明
Append 将一个 Parameter对象加到 Parameters集合中
Delete 删除一个 Parameter对象
Item 取得集合内的某个对象
Refresh 重新整理 Parameters数据集合
Parameters集合的方法
Command对象的 CreateParameter方法的参数
参 数 说 明
Name 参数名称
Type 参数类型
Direction 参数方向
Size 参数大小,指定最长字节
Value 参数值
参 数 相应数值 说 明
adDBTimeStamp 135 日期时间类型
adInteger 3 整数
adSingle 4 单精度小数
adDouble 5 双精度小数
adVarChar 200 变长字符串
CreateParameter方法 -Type取值
CreateParameter方法 - Direction取值
参 数 相应数值 说 明
adParamInput 1 传入
adParamOutput 2 传出
adParamInputOutpu
t
3 传入传出
adParamReturnValu
e
4 从子程序返回数据到该参数中
Parameter对象的方法只有 AppendChunk一个,用于
添加数据到 Parameter对象的末尾,语法为:
Parameter对象和 Parameters集合(续)
Parameter对象,AppendChunk( 长文本或二进制数据)
6.2.4 Recordset对象
建立 Recordset对象
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]
属 性 说 明 语 法
Source Command对象名或 SQL语句
或数据表名
Recordset对象,source=数据库查询
信息
ActiveCo
nnection
Connection对象名或包含
数据库连接信息的字符串
Recordset对象,
ActiveConnection=数据库连接信息
cursorTy
pe
Recordset对象记录集中的
指针类型,可省略
Recordset对象,cursorType=取值
( 0或 1或 2或 3)
Locktype Recordset对象的使用类型,
可省略
Recordset对象,Locktype=取值( 1
或 2或 3 或 4)
6.2.4.2 Recordset对象常用属性
属 性 说 明 语 法
cursorlocation 控制数据处理的位置,
客户端还是服务器端
Recordset对象,Cursorlocation=
取值( 1或 2或 3 )
cursorlocation 控制数据处理的位置,
客户端还是服务器端
Recordset对象,Cursorlocation=
取值( 1或 2或 3 )
Filter 控制欲显示的内容 Recordset对象,Filter=整数值
(0/1/2/3)
Recordcount 记录集的总数 Recordset对象,Recordcount
6.2.4.2 Recordset对象常用属性(续)
属 性 说 明 语 法
cursorlocation 控制数据处理的位置,
客户端还是服务器端
Recordset对象,Cursorlocation=
取值( 1或 2或 3 )
cursorlocation 控制数据处理的位置,
客户端还是服务器端
Recordset对象,Cursorlocation=
取值( 1或 2或 3 )
Filter 控制欲显示的内容 Recordset对象,Filter=整数值
(0/1/2/3)
Recordcount 记录集的总数 Recordset对象,Recordcount
6.2.4.2 Recordset对象常用属性(续)
属 性 说 明 语 法
Bof 记录集的开头 Recordset对象,Bof
Bof 记录集的开头 Recordset对象,Bof
Maxrecords 控制从服务器取得的记
录集的最大记录数目
Recordset对象,Maxrecords
6.2.4.2 Recordset对象常用属性(续)
6.2.4.3 建立 Recordset对象的方法( 1)
Set db=Server.CreateObject("ADODB.Connection")
db.Open "DSN=addr"
Set rs=db.execute(“select * from users")
说明:
这种方法是最常用的方法。
它没有明确建立 Command对象,但是会建立一个隐含的 Command
对象。
利用 Connection对象的 Execute方法建立
6.2.4.3 建立 Recordset对象的方法( 2)
利用 Connection对象的 Execute方法建立
‘ 建立数据库连接对象 db
'建立 Command对象
Set cmd= Server.CreateObject("ADODB.Command")
cmd.ActiveConnection=db
cmd.CommandText=,select * from users"
Set rs=cmd.Execute
说明:
该方法明确建立了 Connection对象和 Command对象
利用 Connection对象的 Execute方法的另一种方式
Set db=Server.CreateObject("ADODB.Connection")
db.Open "DSN=addr"
Set rs=Server.CreateObject("ADODB.Recordset")
Rs.open,select * from users”,db
说明
这是将方法一修改为明确建立 Recordset对象。
6.2.4.3 建立 Recordset对象的方法( 3)
说明
这种方法明确建立三个对象,功能最强大,也最科学
利用 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.2.4.3 建立 Recordset对象的方法( 4)
直接建立 Recordset对象
Set rs=server.createobject(“ADODB.recordset”)
Rs.Open,select * from users”,“Dsn=addr”
6.2.4.3 建立 Recordset对象的几种方法( 5)
说明:
这种方法由于没有明确建立 Connection对象和 Command对象,
就无法使用他们的特殊功能
Recordset对象的方法
1,Open, 打开记录集,语法为
Recordset对象,open
[source],[activeconnection],[cursortype],[locktype],[options]
2,Close:关闭记录集对象,语法:
Recordset对象,close
3,Requery,重新打开记录集,即先关闭再打开,语法:
Recordset对象,requery
Recordset对象的方法
4,Moveprevious,将记录指针移到上条记录,语法:
Recordset对象,moveprevious
5,Movefirst:将记录指针移动到第一条记录,语法:
Recordset对象,movefirst
6,movenext, 将记录指针移到下条记录,语法:
Recordset对象, movenext
Recordset对象的方法(续)
7,movelast:将记录指针移到最后一条记录,语法:
Recordset对象,movelast
8,move,将记录指针移动指定记录,语法:
Recordset对象, move
9,addnew,向数据库添加记录,语法:
Recordset对象,addnew 字段名数组,字段值
Recordset对象的方法(续)
11,update, 更新数据库数据,语法为
Recordset对象, update
10,Delete,删除当前记录,语法:
Recordset对象,delete
12,cancelupdate:取消更才的更新动作,语法:
Recordset对象, cancelupdate
Recordset对象的方法(续)
13,getrows,从记录集中当前记录开始返回多条 (number,-1表示
全部 ) 记录,将符合要求的数据返回给一个二维数组( vararry),
第一维表示字段(列)第二维表示记录(行),语法:
Vararry=Recordset对象, Getrows(number)
14,resync,让客户端记录集与服务器同步更新,参数为 1或 2或 3,
语法:
Recordset对象,resync[参数 ]
6.2.4.4 利用 recordset对象查询记录
建立 Connection对象 db,代码略
建立 Recordset对象
Set rs=Server.CreateObject("ADODB.Recordset")
strSql ="Select * From users"
rs.Open strSql,db
6.2.4.4 利用 recordset对象查询记录
关闭 Recordset对象,关闭 Connection对象
查询记录
Do While Not rs.Eof
Response.Write rs("name") & "<br>"
rs.Movenext
Loop
? 分页所需条件 ? 记录集中的对应属性
1,rs.RecordCount
2,rs.PageSize
4,rs.AbsolutePage
1、总共有多少条记录?
2、每页显示几条记录?
3、总共有几页?
4、当前要显示哪一页?
3,rs.PageCount
6.2.4.5 分页显示数据
分页显示数据(续)
?记录集中的对应属性
1,rs.RecordCount
//直接得到记录集的记录总数
2,rs.PageSize
//需要赋值,如:每页显示 5条。 rs.PageSize=5
3,rs.PageCount
//直接得到属性值
4,rs.AbsolutePage
//需要赋值,如:当前显示第二页。 rs.AbsolutePage=2
? 如何动态的打印页码
<% For I=1 To rs.PageCount
Response.Write I // 打印页码 I
Next %>
? 如何翻页
使用 For 循环实现:
1、确定循环的初值,如果 rs不为空,则初值是 1
2、确定循环的终值,取得 rs.PageCount属性值
改变 rs.AbsolutePage属性值
如:要浏览第二页,则 rs.AbsolutePage=2
如何通过页码实现翻页
在网页之间传递数据。本例为在本页传递页码值。
1、打印页码时,给页码加上超链接,并在链接地址后传
递页码值。链接地址为本页;
<% Response.Write "<a href='9-8.asp?page_no=" & I & "'>" &_
I & "</a>&nbsp" %>
如何通过页码实现翻页 (续 )
<% 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 属性 。
怎样显示当前页面的记录
确定循环的条件表达式
<% I=rs.PageSize
Do While Not rs.Eof And I>0
I=I-1
Response.Write rs(“bookname") & "<br>"
rs.MoveNext
Loop
%>
1、确定是否指向记录集的 BOF或者 EOF
2,确定是否已提取了 5条
显示纪录
打印页码时,当前页面的页码和非当前页面的页码的区别:当前页
面的页码不加超链接;非当前页面的页码加上超链接。
<%
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.2.4.6 利用 Recordset对象更新数据库
建立 Connection对象
建立 Recordset对象
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
更新记录(修改李玫的电话号码)
删除记录,删除李玫的记录
关闭 Connection对象
利用 Recordset对象更新数据库
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(字段名或字段索引值 )
1,Field集合的属性:只有 count属性,返回记录集中
字段( field对象)的个数,语法为:
Field对象和 Fields集合(续)
3.field对象的属性:最有用的属性是 value,获取数据库
的字段值,语法为:
4,Field对象的方法只有一个 appendchunk,用于在当前
数据末尾添加数据,语法为:
field对象,appendchunk data
field对象,value
6.2.5 存取 SQL Server数据库
已知:建立 SQL数据库 sqltest,登录帐号 tt,密码 11,
ODBC数据源名称为 test。 连接方法如下:
创建没有 ODBC数据源的连接
Set db=server.createobject(“adodb.connection”)
Db.open,server=localhost;database=sqltest;uid=tt”&_
”;pwd=11;driver={sqlserver}”
存取 SQL Server数据库(续)
创建有 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}”