关于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%>
我很想知道为什么会这样. 展开
但是我用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%>
我很想知道为什么会这样. 展开
2个回答
展开全部
首先纠正你的一个错误认识:
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%>
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%>
展开全部
你将概念搞混了,
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的数量了.
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的数量了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询