一个ASP的错误问题,ADODB.Field (0x800A0BCD)?

来源:百度知道 编辑:UC知道 时间:2024/06/21 19:28:39
ADODB.Field (0x800A0BCD)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
/c_renttext.asp, 第 125 行
网页代码为:
<%
dim rs,sql,id,areaid,typeid
id=request("rentid")

set rs=Server.CreateObject("ADODB.RecordSet")
sql="select * from house_rent where pass='yes' and rentid="&Cint(id)
rs.open sql,conn,1,1
areaid=rs("areaid")
typeid=rs("typeid")
dim rs_type,sql_type
dim rs_area,sql_area
set rs_type=Server.CreateObject("ADODB.RecordSet")
set rs_area=Server.CreateObject("ADODB.RecordSet")
sql_type="select * from housetype where typeid="&Cint(typeid)
sql

楼上说的对

areaid=rs("areaid") 的前面加一句

if rs.eof and rs.bof then
response.write "返回空记录"
response.end
end if

BOF 或 EOF 中有一个是“真”
说明没有查到记录,没有查到记录areaid=rs("areaid")当然有错.
你需要用if语句判断一下,如有记录再执行.

你的情况估计是sql语句查询出来的值是空的,因此数据集也是空的,在读取rs数据集里面的值的时候就会报这个错误。
使用 if rs.bof and rs.eof then 这个判断可以判别rs里面是否有没有数据集,如果符合这个条件,说明数据集是空的,在程序中就要绕开对rs里字段的访问。