Recordset记录集对象的属性

Recordset对象的作用是由数据库返回记录集。根据查询结果返回一个包含所查询数据的记录集,然后显示在页面上。因为删除、更新、添加操作不需要返回记录集,因此可以直接使用连接对象或是命令对象的Exexut方法,但是利用记录集对象有时会更简单,此外,通过记录集对象能够实现比较复杂的数据库管理任务,比如要采用分页显示记录就必须使用记录集对象。
Recordset对象可以用来代表表中的记录,可以把记录集看成是一张虚拟的表格,包含一条或多条记录(行),每条记录包含一个或多个字段,但任何时候只有一条记录为当前记录。
可以在非显式建立连接对象的情况下,直接打开一个带有查询的记录集,或是对命令对象的查询返回一个记录集。ADO提供这种灵活性,可以用最简单的方式指明一个字符串来说明连接方式,从而得到数据库的查询结果,ADO会自动创建所需要的连接对象。当然也可以显式创建连接对象和命令对象,这样可以获得更多的灵活性,实现更为强大的功能。
6.4.1 建立Recordset对象
创建记录集的方法主要有两种。可以先建立连接对象,再创建记录集对象;也可以在非显式建立连接对象的情况下,创建记录集对象。
第一种,先建立连接对象,再创建记录集对象,用法见下面的范例。
范例6-23:先建立连接对象,再创建记录集对象
<%
Set db=Server.CreateObject("ADODB.Recordset") ' 先建立连接对象
db.Open"zbsdbbszb"
Set rs=db.Execute(Select * from article) ' 建立记录集对象rs
%>
注意:为了说明问题的方便,给记录集对象取名为rs,本书下面的实例中记录集对象名均为rs。
第二种,在非显式建立连接对象的情况下,用Server对象的CreatObject方法建立并打开记录集对象,语法如下:
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open参数
Open方法的参数见表6-16。

表6-16 Open方法的参数
参数
说明
Source数据库查询信息
ActiveConnection数据库连接信息
CursorType记录集中的指针类型,可选,见表6-17
LockType锁定类型,可选,见表6-18
Options数据库查询信息类型,可选,见表6-19

CursorType参数值表6-17:

表6-17 CursorType参数值
参数
说明
AdOpenForwardOnly0向前指针,默认值。只能用MoveNext方法或GetRows方法向前单向移动指针,所耗系统资源最少,执行速度也最快,但很多属性和方法将不能用
AdOpenKeyset1键盘指针,记录集中可以前后移动。某一用户修改数据后,其他用户可以立即显示,但禁止查看其他用户添加和删除的记录
AdOpenDynamic2动态指针,记录集中可以前后移动。所有修改会立即在其他客户端显示,功能强大,但所耗系统资源也多
AdOpenStatic3静态指针,记录集中可以前后移动。所有修改不会在其他客户端显示

说明:
▲ 关于指针(又称游标)。所谓记录集,如同一个电子表格,包含所获取的若干记录,每条记录又包含若干字段。如果记录不为空,打开记录集后,指针指向第一条记录。可以通过移动指针在记录集中漫游,指针所指向的记录为当前记录,当前记录只能有一条。
▲ 在默认情况下,当打开记录集,为向前指针,只能用MoveNext方法向前单向移动指针,其他操作不受支持。如果需要编辑、添加和删除记录,想使用可前后移动的指针,并且需要看到其他用户的对数据库的修改,就需要使用其他类型的指针。
LockType参数值表6-18:

表6-18 LockType参数值
参数
说明
AdLockReadOnly1只读,默认值,适用于仅浏览数据
AdLockPessimistic2只能同时被一个用户所修改,修改时锁定,完毕解锁
AdLockOptimistic3可以同时被多个用户所修改,直到用update方法更新记录才锁定
AdLockBatchOptimistic4数据可以被修改,且不锁定其他用户,指定数据成批更新

说明:
▲ 锁定目的是确保数据的完整性,以防止更改被覆盖。
▲ 当不需要修改记录,应该使用默认的只读记录集,这样执行速度快,消耗系统资源少;如果是需要修改记录,一般情况下,选择取值2,记录只锁定一下,即可保护更改操作,也不消耗过多的系统资源。
Options参数值表6-19:

表6-19 Options参数值
参数
说明
AdCmdUnkown-1表示CommandText参数类型无法确定,默认值
AdCmdText1表示CommandText参数是命令类型
AdCmdTable2表示CommandText参数是表名称
AdCmdStoreProc3表示CommandText参数是存储过程名称

范例6-24:建立记录集对象
<%
Set rs=Server.CreateObject("ADODB. Recordset")
rs.Open" Select * from article","dsn=zbsdbbszb" ' 在Open方法中给出数据源
%>
说明:
▲ 非显式创建连接对象和命令对象。
▲ Select * from article
这个查询字符串定义后,记录集对象会自动把它转换到一个命令对象上。
▲ dsn=zbsdbbszb
这是创建连接对象的连接字符串。
6.4.2 Recordset记录集对象的属性
Recordset记录集对象常用属性见表6-20。

表6-20 Recordset记录集对象常用属性见表
属性
说明
Source指示记录集对象中数据的来源(命令对象名或SQL语句或表名)
ActiveConnection连接对象名或包含数据库的连接信息的字符串
CursorType记录集中的指针类型,可选,见表6-16
LockType锁定类型,可选,见表6-17
MaxRecors控制从服务器获取的记录集的最大记录数
CursorLocation控制数据处理是在客户端还是在服务器端
Filter控制要显示的内容
Bof记录集的开头
Eof记录集的结尾
RecordCount记录集总数
PageSize分页显示时每一页的记录数
PageCount分页显示时数据页的总页数
AbsolutePage当前指针所在的数据页
AbsolutePosition当前指针所在的记录行

Recordset记录集对象常用属性具体说明如下。
1.Source
用于设置数据库的查询信息,查询信息可以是命令对象名或SQL语句或表名,语法如下:
rs.Source=查询信息
2.ActiveConnection
用于设置数据库的连接信息,连接信息可以是连接对象名或包含数据库的连接信息的字符串,语法如下:
rs.ActiveConnection=连接信息
3.CursorType
用于设置记录集指针类型,取值参见表6-17,语法如下:
rs.CursorType=值
默认为0,即指针只能前移。如果要让指针自由移动,一般设为键盘指针1。
4. LockType
用于设置记录集的锁定类型。取值参见表6-18,语法如下:
rs.LockType=值
默认为1,只读属性。如果要利用记录集对象进行添加、删除、更新等操作,只能由一个用户修改,一般需要设置其属性为2。
5.MaxRecors
用于设定从服务器上得到的最大记录数,语法如下:
rs.MaxRecors=最大记录数
通常这种方法不常用,而是使用SQL语句来指定所得到的最大记录数,”Select Top 整数…”。
6.CursorLocation
用于设置数据处理是在客户端还是在服务器端。取值参见表6-21,语法如下:
rs.CursorLocation =值

表6-21 CursorLocation参数值
参数
说明
AdUseClient1客户端处理
AdUseServer2服务器端处理
AdUseClientBatch3动态处理,在客户端处理,处理时连接切断,处理完毕重新连接

有的时候,为了减轻服务器的工作负担,可以根据情况的需要,设置在客户端处理。
7.Filter
用于设置要显示的内容。取值参见表6-22,语法如下:
rs.Filter =值

表6-22 Filter参数值
参数
说明
AdFilterNone0显示所有数据
AdFilterpendRecords1只显示没有修改过的数据
AdFilterAffectedRecords2只显示最近修改过的数据
AdFilterFetchedRecords3只显示暂存于客户端缓存中的数据

8.Bof
用于判断当前记录指针是否在记录集的开头,如在开头,返回True,否则返回Falsh。如果记录集为空,也返回True。
9.EOF
用于判断当前记录指针是否在记录集的结尾,如在结尾,返回True,否则返回Flash。如果记录集为空,也返回True。
记录集有两个特殊位置:Bof和 EOF。Bof表示记录集的开头,位于第一条记录之前;EOF表示记录集结尾,位于最后一条记录之后。Bof 为 True,当前指针指到 RecordSet 的第一条记录; Eof 为 True,当前指标指到 RecordSet 的最后一条记录。如果记录集不为空,指针可以在Bof、所有记录和Eof移动。如果记录集为空,此时指针同时指向Bof和 Eof,它们的值均为True。
具体判断如下:若当前记录的位置是在一个 Recordset 对象第一行记录之前时, Bof 属性返回 True,反之则返回 False。;若当前记录的位置是在一个 Recordset 对象最后一行记录之后时,Eof 属性返回 True,反之则返回 False;Bof 与 Eof 都为 False,表示指标位于 RecordSet 的当中;Bof 与 Eof 都为 True,在 RecordSet 里没有任何记录。
从以上可知,通过检验 Bof 与 Eof 属性,可以得知当前指针所指向的 RecordSet 的位置,使用 Bof 与 Eof 属性,可以得知一个 Recordset 对象是否包含有记录或者得知移动记录行是否已经超出该 Recordset 对象的范围。
判断记集录是否为空的代码如下:
< %
if not rs.bof and rs.eof then ' 如果不是开头,也不是结尾,则执行

End if
%>
循环输出记录集记录的代码如下:
< %
Do while not rs.eof ' 如果没有到达记录集未尾,则循环输出下面的记录

Rs.MoveNext
Loop
%>
10.RecordCount
用于返回记录集中的记录总数。我们常用 RecordCount 属性来找出一个 Recordset 对象包括多少条记录。例如:
< % Rsponse.Write rs.RecordCount %>
要注意的是,使用RecordCount必须设置指针类型为键盘指针1或是静态指针3。
11.PageCount
用于设置分页显示时数据页的总数。使用 PageCount 属性,决定 Recordset 对象包括多少“页”的数据。这里的“页”是指数据记录的集合,大小等于 PageSize 属性的设定,即使最后一页的记录数比 PageSize 的值少,最后一页也算是 PageCount 的一页。
12. PageSize 属性
用于设置分页时每一页所显示的记录数。PageSize 属性是决定 ADO 存取数据库时如何分页显示的关键,使用它就可以决定多少记录组成一个逻辑上的“1页”。  
第10、11、12条属性通常是用于分页显示,具体运用见下面的范例。
13.AbsolutePage
用于设置当前指针位于哪一页。语法如下:
rs.AbsolutePage =整数值
14.AbsolutePosition
用于设置当前指针所在的记录行。语法如下:
rs.AbsolutePosition =整数值
后面的这些属性使用时,一般需要设置指针类型为键盘指针1。
6.4.3 Recordset记录集对象的方法
Recordset记录集对象的常用方法见表6-23。

表6-23 Recordset记录集对象的方法
方法
说明
Open打开记录集
Close关闭记录集
Requery重新打开记录集
Move指针移至指定记录
MoveFirst指针移至第一条记录
MoveLast指针移至最后一条记录
MovePrevious指针移至上一条记录
MoveNext指针移至下一条记录
AddNew添加记录
Delete删除记录
Update更新记录
CancelUpdate取消更新
GetRows从记录集得到多行记录
Resync与数据库服务器同步更新

具体说明如下。
1. Open
用于打开记录集,语法如下:
rs.Open参数
2. Close
用于关闭记录集,语法如下:
rs.Close
使用Close方法关闭记录集对象,Close方法并不会将记录集对象从内存中清除,如果的确不再需要这个对象,可以用下列语句清除这个对象,以完全释放所占用的系统资源。
<%
Rs.Close
Set rs=nothing
%>
3. Requery
用于重新打开记录集,语法如下:
rs.Requery
4.Move
用于将指针移动到指定记录,语法如下:
rs.Move NumRecords,Start
NumRecords是一个正负数运算式,用于设定当前记录位置的前后移动数目,如果为正值表示向前移动(即记录集的未尾方向)多少条记录,如果为负值表示向后移动(即记录集的开始方向)多少条记录;Start是一个可选的项目,用来指定记录起始的位置,默认为当前指针位置。
5.MoveFirst
用于将指针移动到第一条记录,语法如下:
rs.MoveFirst
6.MoveLast
用于将指针移动到最后一条记录,语法如下:
rs.MoveLast
7.MovePrevious
用于将指针移动到上一条记录,语法如下:
rs.MovePrevious
8.MoveNext
用于将指针移动到下一条记录,语法如下:
rs.MoveNext
Move 和MoveFirst 、MoveLast、MoveNext、MovePrevious方法用于指针的移动。MoveNext是最常用的方法,执行速度快。如果使用其他方法,一般要设置指针类型为键盘指针。在使用这几个有关指针移动的方法之前,最好用Bof和Eof进行判断是否已达记录集的边界,否则超越边界,就会出错。
9.AddNew
用于向数据库添加记录,语法如下:
rs.AddNew 添加记录的信息
10.Delete
用于向数据库删除当前记录,语法如下:
rs.Delete
指针当前指向哪条记录,就是当前记录。
11.Update
用于向数据库更新记录。它有两种情况。
第一种,执行完AddNew 或Delete后,执行Update更新,语法如下:
rs.Update
第二种,直接用Update方法更新,语法如下:
rs.Update 更新记录的信息
例如,以下是采用第一种方法更新数据
<%

rs.AddNew 添加记录的信息
rs.Update
%>
如果采用第二种方法,可以直接写成:
<%

rs.Update 添加记录的信息
%>
12.CancelUpdate
用于取消更新记录的操作,语法如下:
rs.CancelUpdate
13.GetRows
用于从记录集中的当前记录开始返回多行记录,它将返回一个二维数组,语法如下:
rs.GetRows(number)
参数用于设置要返回多少条记录,默认为-1,也就是全部记录。在返回的二维数组中,第一维表示列,第二维表示行。
14.Resync
用于将客户端记录集与服务器同步更新。当多人同时打开数据库进行更新操作,采用这个方法可以实时查看其他用户的更新数据,语法如下:
rs.Resync 参数
参数取值见表6-24。

表6-24 Resync参数值
参数
说明
AdAffectCurrent1只同步更新当前指针所在的记录行
AdAffectGroup2同步更新所有匹配Filter属性的记录行
AdAffectAll3同步更新记录集中的所有数据

范例6-25:显示记录的操作
<%
Set db=Server.CreateObject("ADODB.Connection")
db.Open "zbsdbbszb"
' 建立Recordset对象
Set rs=Server.CreateObject("ADODB.Recordset")
Sql ="Select * From article "
rs.Open Sql,db
' 查询记录
Do While Not rs.Eof
Response.Write rs("name") & "<br>" ' 循环输出姓名
rs.Movenext
Loop
%>
说明:
采用rs(“字段名”)可以很容易得到当前记录的字段值,然后直接输出显示或是赋予一个变量。
范例6-26:添加记录的操作
<%
Set db=Server.CreateObject("ADODB.Connection")
db.Open "zbsdbbszb"
Set rs=Server.CreateObject("ADODB.Recordset")
Sql ="Select * From article"
rs.Open Sql,db,0,2 ' 锁定类型为可以修改
' 添加记录
rs.AddNew
rs("name")="李四"
rs.Update
%>
范例6-27:更新记录的操作
<%
Set db=Server.CreateObject("ADODB.Connection")
db.Open "zbsdbbszb"
Set rs=Server.CreateObject("ADODB.Recordset")
Sql ="Select * From article where name='李四'" ' 查询名为李四的记录
rs.Open Sql,db,0,2 ' 锁定类型为可以修改
' 更新记录
rs("name")="张三" ' 将名字”李四”更新为”张三”
rs.Update
%>
范例6.29:删除记录的操作
<%
Set db=Server.CreateObject("ADODB.Connection")
db.Open "zbsdbbszb"
Set rs=Server.CreateObject("ADODB.Recordset")
Sql ="Select * From article where name='张三'"
rs.Open Sql,db,0,2 ' 锁定类型为可以修改
' 删除记录
rs.delete
%>
范例6-28:记录集对象的综合运用。首先通过articlelist.asp列表显示数据库article表中所有记录的文章标题字段值,再传递记录id号至articleupdate.asp显示一条记录的所有字段值,然后对其进行修改操作。
conn_db.asp的代码。
<%
set db=Server.Createobject("ADODB.Connection")
db.Open "zbsdbbszb"
%>
说明:
如果系统中有较多程序文件要对数据库进行操作,为了代码的简洁,可以把连接代码单独写在一个文件里,然后在其他的文件代码的开头写上<!--#include file="conn_db.asp"-->以引用这个文件。#include语法用于在一个文件中插入另一个文件。
articlelist.asp的代码。
<!--#include file="conn_db.asp"-->
<html><head></head><body>
<%
sql="select * from article order by submit_date desc" ' 按提交时间降序查询显示
set rs=Server.CreateObject("ADODB.Recordset")
rs.Open sql,db
Do while not rs.eof
%>
<a href="samlpe6-10.asp?id=<%=rs("ID")%>"><%=rs("title")%></a><br>
<%
Rs.MoveNext
Loop
%>
</body></html>
注意:
▲ 正确书写代码,特别注意空格。比如<%=rs("title")%>与<%=rs("title ")%>是不一样的。自己手工编写的程序发生错误,往往是表现在写法的错误,比如出现不应有的空格、使用了中文标点符号、英文单词的拼写错误等等。所以大家在编写ASP程序时一定要细心。
▲ <a href="articleupdate.asp?id=<%=rs("ID")%>"><%=rs("title")%></a>
给页面显示的标题字段加上链接,以传递ID号到articleupdate.asp页面。
▲ 使用Do ... Loop循环将表中所有记录的文章标题字段值读取显示。
效果图略。
articleupdate.asp
<!--#include file="conn_db.asp"-->
<html><head>
<title>更新记录范例</title>
</head><body>
<%
' 根据传入的id将本条记录显示在表单内
id=Request.QueryString("id")
' 创建Recordset对象
Sql="select * from article where id=" & id ' id由前面的页面传过来
set rs=db.Execute(Sql)
%>
<center>
<table border="1" width="400" style="border-collapse: collapse" bordercolor="#111111" cellpadding="4" cellspacing="0">
<form action="" method="post" name="form1">
<tr>
<td>作者</td><td><input type="text" name="name" size=20 value="<%=rs("name")%>"></td>
</tr><tr>
<td>标题</td><td>
<input type="text" name="title" size=40 value="<%=rs("title")%>"></td>
</tr><tr>
<td>内容</td><td>
<textarea name="articlebody" rows="6" cols="40" wrap="soft"> <%=rs("articlebody")%></textarea></td>
</tr>
<tr>
<td><input type="submit" value="确定">
</td>
</tr>
</form>
</table>
</center>
<%
' 先检验表单输入内容不能为空
If Request("name")<>"" AND Request("title")<>"" AND Request("articlebody")<>"" Then
' 以下修改记录
name=Request("name")
title=Request("title")
articlebody=Request("articlebody")
Sql="update article set name='" & name & "',title='" & title & "',articlebody='" & articlebody & "' where id=" & id
db.Execute(Sql) ' 这里利用Execute方法,修改记录
Response.Redirect "articlelist.asp" ' 修改完毕,重定向至articlelist.asp
Else
%>
<center>
<%
Response.Write "所有项目都要填写"
End If
%>
</center>
</body></html>
说明:
▲ 本范例是从论坛中查找并打开一条记录,然后对其进行修改操作。根据从其他页面传递过来的文章ID号,从数据库中查询并显示符合条件的记录,然后通过表单向数据库里提交修改信息,用update进行记录的更新操作。
▲ 注意观察图6.11浏览器地址栏中显示ID号的传递情况。
下面介绍一种很有用的记录集对象的实际应用—分页显示技术。我们注意观察网上的BBS论坛,为了提高页面的读取速度,不会将所有的帖子全部在一页中罗列出来,那样页面空间也是有限,通常是将贴子分成多页显示,每页显示一定数目的帖子数,比如6条。这就是使用了ADO 存取数据库时的分页显示技术。
Recordset 对象提供了几个专门进行分页处理的属性:PageSize( 页大小 )、 PageCount( 页数目 ) 以及 AbsolutePage( 绝对页 )等。
范例6-29:分页显示记录
<%
' 建立Connection对象
Set db=Server.CreateObject("ADODB.Connection")
db.Open "zbsdbbszb"
Set rs=Server.CreateObject("ADODB.Recordset") ' 建立Recordset对象
Sql ="Select * From article"
rs.Open Sql,db,1
' 查询记录
If Not rs.Bof And Not rs.Eof Then ' 首先判断记录集记录非空
dim page_size ' 设置每页多少条记录量
dim page_no ' 设置当前是第几页
dim page_total ' 设置总页数
page_size=6 ' 每页显示6条记录
' 如果第一次打开,则page_no为1,否则由传回的参数决定
if Request.QueryString("page_no")="" then
page_no=1
else
page_no=Cint(Request.QueryString ("page_no")) ' 用Cint将字符串变为整数
end if
rs.PageSize=page_size ' 设置每页多少条记录
page_total=rs.PageCount ' 返回总页数
rs.AbsolutePage=page_no ' 设置当前显示第几页
' 下面一段显示当前页的所有记录
Dim I
I=page_size ' 该变量用来控制显示当前页记录
Do While Not rs.Eof And I>0 ' 循环直到当前页结束或文件结尾
I=I-1
Response.Write rs("title") & "<br>" ' 输出文章标题字段值
rs.MoveNext
Loop
Response.Write "请选择页: "
' 输出有关页数信息,从1到总页数循环,如果不是当前页,就加上超链接
For I=1 To page_total
If I=page_no Then
Response.Write I & "&nbsp"
Else
Response.Write "<a href='show-example.asp?page_no=" & I & "'>" & I & "</a>&nbsp"
End If
Next
End if
%>
说明:
▲ 以上进行分页显示设置,设置每页显示的记录数为6条。
▲ Response.Write "<a href='show-example.asp?page_no=" & I & "'>" & I & "</a>&nbsp"
依次显示页码信息,如果不是当前页,则加上超链接。show-example.asp为本页面文件名。
6.4.4 Fields列集合和Field列对象
记录集对象中包含由Field列对象组成的Fields列集合。每个Field列对象对应于记录集中的一列(字段)。Field列对象可以看成是记录集对象的子对象。
1.Fields列集合
Fields列集合的只有Count属性,用于返回记录集中字段(也就是Field列对象)的个数,语法如下:
rs.Fields.Conut
Field列集合的Item方法,用于建立一个Field列对象,语法如下:
Set Field对象=rs.Fields.Item(字段名或字段索引值)
字段索引值是根据记录集中字段的先后顺序来定,从0到Fields.Count-1。
Field列对象的属性见表6-25。

表6-25 Field列对象的属性
属性
说明
Name字段名称
Value字段值
Type字段的数据类型
DefinedSize字段长度
Precision字段所存放数字的最大位数
NumericScale字段存放数字的最大值
ActualSize字段数据值长度
Attributes字段数据值属性,见表6-26

使用Value属性可以获得当前记录的字段值。在Field对象的属性中,Value属性相对比较常用,语法如下:
Field对象.value

表6-26 Attributes属性值
参数
说明
AdFldMayDefer2允许不取回字段的所有数据
AdFldUpdatable4不允许改动字段
AdFldUnknownUpdatable8数据源不能确定是否可写
AdFldFixed16固定字段长度,多余部分删除
AdFldIsNullable32字段可以接受空值
AdFldMayBeNull64字段可以读取空值
AdFldLong128长二进制字段
AdFldRowID256字段可以包含行记录ID
AdFldRowVersion512字段包含可以跟踪时间与日期的标记

Field对象的AppendChunk方法用于在当前字段的数据未尾添加数据,语法如下:
Field对象. AppendChunk 数据
Fields集合和Field对象由于具体使用比较少,我们在此不作详细介绍了。下面给出一个实例来说明Field对象的常用属性。
实例6-29:Field对象的常用属性
<%
Set db=Server.CreateObject("ADODB.Connection")
db.Open "zbsdbbszb"
' 建立Recordset对象
Set rs=Server.CreateObject("ADODB.Recordset")
Sql ="Select * From article"
rs.Open Sql,db
' 创建当前字段的Field对象fld
' Item(1)用于指明显示记录集中哪个字段情况,1为字段索引值
Set fld=rs.Fields.Item(1)
Response.Write "字段名称:" & fld.Name & "<br>"
Response.Write "字段值:" & fld.Value & "<br>"
Response.Write "字段类型:" & fld.Type & "<br>"
Response.Write "字段大小:" & fld.Definedsize & "<br>"
Response.Write "字段最大位数:" & fld.Precision & "<br>"
%>
以上介绍了ADO的三个重要的基本的对象:连接对象、命令对象和记录集对象,还有其他的三个对象:错误对象、参数对象和列对象,还介绍了三个集合,即错误集合、参数集合和列集合。
ADO还有Properties属性集合和Property属性对象。Properties属性集合是所有Property属性对象的集合,用来保存与连接对象、命令对象、记录集对象和列对象有关的各个Property属性对象。Property属性对象用于记录连接对象、命令对象、记录集对象和列对象的每一项属性值。关于Properties属性集合和Property属性对象,这里不作过多叙述。

你可以通过这个链接引用该篇文章:http://roneal.bokee.com/tb.b?diaryId=14209388

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值