ADODB.Field(0x80020009)BOF或EOF中有一个是"真".或者当前的记录已被删除.所需的操作要求一个当前的记录。

来源:百度知道 编辑:UC知道 时间:2024/06/30 14:36:37
<html>
<head><title>bbs.asp</title></head>
<body>
<% idnum=Request.QueryString("ID")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("bbs.mdb")
Set rs1 = Server.CreateObject("ADODB.RecordSet")
Set RS=Conn.Execute("SELECT * FROM bbs WHERE ID='" &idnum& "'") %>
姓名:<% =RS(1) %><p>
主题:<% =RS(2) %><p>
内容:<% =RS(3) %><p>

------------------------------------------------------------------------------
<! --形成回复表单 -->
<% resub="Re:" & RS(2)
mtopnum=RS(8)
RS.Close
Connection.Close %>
<FORM METHOD="POST" ACTION="bbs.asp?ID=<% =idnum %>&topnum=<% =mtopnum %>">
主题:<INPUT NAME="subject"

根据提示,是你的数据库里没有这条信息,你也没告诉我是哪行出理的问题,我觉得应该是这里的问题Set RS=Conn.Execute("SELECT * FROM bbs WHERE ID='" &idnum& "'") %>
SELECT * FROM bbs WHERE ID='" &idnum& "' 可能是在数据库里没有这个ID为
idnum 的数据,仔细查一下idnum传过来的值,看看数据库有没有.

原因是在你在查询数据库之后没有进行判断
解决:在 | 姓名:<% =RS(1) %><p> | 这行之前加一句判断语句

Set RS=Conn.Execute("SELECT * FROM bbs WHERE ID='" &idnum& "'")
if NOT RS.EOF AND NOT RS.BOF then
%>
姓名:<% =RS(1) %><p>

在 |RS.Close| 之前加一句结束判断语句

mtopnum=RS(8)
else
resub="没有此主题"
mtopnum=0
end if
RS.Close

说明:mtopnum数据类型为数字 就等于一个数
mtopnum数据类型为文本 就等于""