大家在使用recordcount来实现返回纪录数的时候会发现返回值是-1或者1的时候,很奇怪,经过研究总结了以下几种获得纪录条数的方法:
备注:(我前边发过一篇:数据库连接实例,具体地址:
http://blog.sina.com.cn/s/blog_505bf9af01009307.html
希望大家参考学习)
方法一
Set
oRs
=
Server.CreateObject("ADODB.RecordSet")
oRs.Open
sSql,
oConn,
1,
1
来读数据.
仅检索数据:rs.open
SQL,conn,1
更新数据:rs.open
SQL,conn,2,2,1
方法二
用Select
Count(*)
As
RecordCount
From
[table]
oRs("RecordCount")来获取
方法三
用Do
While
Not
oRs.Eof
RecordCount
=
RecordCount
+
1
Loop
方法一原理如下:
通常人们使用以下两种方法来执行 SQL语句:
Set
Rs=Conn.Execute(SqlStr)
和
Set
Rs=Server.CreateObject(“ADODB.RecordSet“)
Rs.Open
SqlStr,Conn,CursorType,LockType
(RecordSet对象方法请看这里)
由于默认的记录集游标是服务器游标,
Rs.CursorLocation
=
adUseServer
所以返回Rs.RecordCount=-1,
应该把服务器游标改为客户端游标,
Rs.CursorLocation
=
adUseClient
Rs.Open
SqlStr,Conn,CursorType,LockType
rs.cursortype
光标类型
recordcount
属性
---------------------------------------------
ForwardOnly
0(默认)
返回-1
Keyset
1
正确的记录数
Dynamic
2
-1或不正确的记录数,依数据源而定
Static
3
正确的记录数
方法一
Set
仅检索数据:rs.open
方法二
用Select
方法三
用Do
方法一原理如下:
通常人们使用以下两种方法来执行 SQL语句: