recordcount(什么是recordcount)
一、if rs.recordcount<>"0" then 怎么解释呢
if rs.recordcount<>0 then....
表示如果查询数据库匹配记录不为空,则....
recordcount代表查询出来的记录集个数
在判定条件中确实不能加引号,引号里面代表时字符串而不是数据,所以if rs.recordcount<>“0” then....
则代表记录集数不等于0这个字符,可对于rs.recordcount它只能是数字,这么写条件永远不成立。
response.write rs("shjiaid")
表示将当前记录集字段为shjiaid数据在当前页面显示。
二、关于rs.RecordCount和rs.fields(0).value
首先纠正你的一个错误认识:
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%>
三、vb中关于RecordCount的问题
recordcount是adodc控件的一个属性,其含义是统计表中的记录条数。
例如,若recordcount=0则说明是空表。
你的源程序的功能是:
判断表中记录条数是否为空,若不为空则执行删除操纵,否则不删除。
很容易理解的,当你的表中没有记录时删除操作根本无法执行下去,言外之意if语句的功能就是防止你不停删除记录。