关于rs.RecordCount和rs.fields(0).value

我看到书上讲rs.RecordCount和rs.fields(0).value都是可以得到记录条数但是我用rs.fields(0).value确实获得正确的记录条数rs.... 我看到书上讲rs.RecordCount和rs.fields(0).value都是可以得到记录条数
但是我用rs.fields(0).value确实获得正确的记录条数rs.RecordCount却只得到1.这是为什么?
我的写法是(连接数据库那段省略)

这个可以获得
<%
sql="select count(tushuno) from borrow "
'sql=sql+" where duzheno='ben'"
Set rs1= Server.CreateObject("ADODB.Recordset")
rs1.open sql,conn,1,1
d=rs1.fields(0).value
%>
<%=d%>
这个却只能获得1
<%
sql="select count(tushuno) from borrow "
'sql=sql+" where duzheno='ben'"
Set rs1= Server.CreateObject("ADODB.Recordset")
rs1.open sql,conn,1,1
d=rs1.RecordCount
%>
<%=d%>
我很想知道为什么会这样.
展开
 我来答
jizhongbo
推荐于2016-04-21 · TA获得超过2154个赞
知道大有可为答主
回答量:1493
采纳率:0%
帮助的人:901万
展开全部
首先纠正你的一个错误认识:
rs.fields(0).value 是用来返回记录集rs当前位置第一个字段的值,而不是用来返回记录总数;
而rs.RecordCount是真正用来返回记录总数的。

你的SQL语句中用到了COUNT(*) 函数,该函数返回符合查询中指定的搜索条件的行的数目,而不消除重复值。它对每行分别进行计数,包括含有空值的行。

因此,你的rs最终返回的只有一条记录,而该记录的内容是符合 duzheno='ben'条件的记录总数。

因此,用rs.fields(0).value获得的是符合 duzheno='ben'条件的记录总数,而不是rs的总数,rs总数只有1;rs.RecordCount=1是正确的。

你把第二段代码这样改写一下的话,两段代码的执行效果就会一样了:

<%
sql="select tushuno from borrow "
'sql=sql+" where duzheno='ben'"
Set rs1= Server.CreateObject("ADODB.Recordset")
rs1.open sql,conn,1,1
d=rs1.RecordCount
%>
<%=d%>
百度网友35788a8fb
2006-05-14 · TA获得超过1583个赞
知道小有建树答主
回答量:820
采纳率:0%
帮助的人:0
展开全部
你将概念搞混了,
sql="select count(tushuno) from borrow " 表示从borrow表中计算tushuno的总数,然后将这个总数返回给rs1,此时rs1只有一条记录count,而count是 borrow的tushuno总数,这个时候rs1.RecordCount 当然只有一条了

sql="select * from borrow " 不加count,代表从borrow选所有数据,此时rs1有很多条数据,这个时候你用rs1.RecordCount就是rs1的数量了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式