考虑一个包含四行的记录集,如下所示
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,但我仍然得到错误。
有人可以帮忙吗?
答案 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