我正在尝试为记录集运行两个WHILE NOT循环。其中一个循环计算项目数,而另一个循环计算结果。我不能改变SQL查询,所以这是我留下的计数方法。
setPeopleCount = 0
While NOT rsSetContents.EOF
setPeopleCount = setPeopleCount + 1
rsSetContents.MoveNext
Wend
While NOT rsSetContents.EOF
Response.Write rs.Fields("exampleItem")&"<br>"
rsSetContents.MoveNext
Wend
我的问题是运行两个循环。在第一个循环完成计数后,记录光标位于文件的末尾,因此当下一个循环需要运行时 - 它不会因为EOF为真。
如何将光标重置回文件的开头,以便第二个循环可以运行?
答案 0 :(得分:4)
答案 1 :(得分:1)
你能不指望底部循环?或者也许将记录读入对象数组,然后您可以根据需要自由迭代它
答案 2 :(得分:0)
MoveFirst
需要在记录集上使用正确的光标 - 例如,如果您将更改为其他数据库,则默认光标可能会更改,代码可能会失败。
我建议您在计数时存储值,从而保存第二个循环:
setPeopleCount = 0
Dim exampleItems()
ReDim exampleItems(-1)
While NOT rsSetContents.EOF
setPeopleCount = setPeopleCount + 1
ReDim Preserve exampleItems(UBound(exampleItems) + 1)
exampleItems(UBound(exampleItems)) = rs("exampleItem")
rsSetContents.MoveNext
Wend
'instead of a loop, just this:
Response.Write(Join(exampleItems, "<br />"))