ASP表和EOF - 获取错误'80020009'

时间:2012-07-16 11:34:16

标签: asp-classic

考虑一个包含四行的记录集,如下所示

Team  NumDocs
OPS10 2
OPS4  1
OPS5  2
OPS7  3

还要考虑表格中的以下行来显示这些行。

<td>
<% If Trim(RS("Team")) = "OPS1" And not RS.EOF Then
Response.Write(RS("NumDocs")) 
RS.MoveNext 
End If%>
</td>
<td>
<% If Trim(RS("Team")) = "OPS10" And not RS.EOF Then
Response.Write(RS("NumDocs")) 
RS.MoveNext
End If%>
</td>
<td>
<% If Trim(RS("Team")) = "OPS2" And not RS.EOF Then
Response.Write(RS("NumDocs")) 
RS.MoveNext 
End If%>
</td>
<td>
<% If Trim(RS("Team")) = "OPS3" And not RS.EOF Then
Response.Write(RS("NumDocs")) 
RS.MoveNext 
End If%>
</td>
<td>
<% If Trim(RS("Team")) = "OPS4" And not RS.EOF Then
Response.Write(RS("NumDocs")) 
RS.MoveNext 
End If%>
</td>
<td>
<% If Trim(RS("Team")) = "OPS5" And not RS.EOF Then
Response.Write(RS("NumDocs")) 
RS.MoveNext 
End If%>
</td>
<td>
<% If Trim(RS("Team")) = "OPS6" And not RS.EOF Then
Response.Write(RS("NumDocs")) 
RS.MoveNext 
End If%>
</td>
<td>
<% If Trim(RS("Team")) = "OPS7" And not RS.EOF Then
Response.Write(RS("NumDocs")) 
RS.MoveNext 
End If%>
</td>
<td>
<% If Trim(RS("Team")) = "OPS8" And Not RS.EOF Then
Response.Write(RS("NumDocs")) 
RS.MoveNext 
End If%>
</td>
<td>
<% If Trim(RS("Team")) = "OPS9" And Not RS.EOF Then
Response.Write(RS("NumDocs")) 
RS.MoveNext 
End If%>
</td>

标题行包含10个硬编码标题,OPS1,OPS10,OPS2等。

上面填充OPS7列的部分很好,并且“2”的值被写入单元格。然后我在OPS8的下一列上得到一个错误 - 显然没有返回值,因为它只能达到OPS7。这就是为什么我在IF语句中放入了一个Not EOF,但我仍然得到错误。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

您应该将RS.EOF移动到IF语句E.G.中的第一个检查,从这里开始

If Trim(RS("Team")) = "OPS9" And Not RS.EOF Then

到这个

If Not RS.EOF Then
    If Trim(RS("Team")) = "OPS9" Then
        ... logic here ...
    End If
End If

问题是And不是经典asp中的短路操作。

答案 1 :(得分:0)

不幸的是,没有与此代码相关联的错误消息。

80020009 =访问记录集的数据是EOF