我正试图为记录集运行两个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为真而运行。
我如何将光标重置回文件的开头,以便第二个循环可以运行?
你可以使用MoveFirst
http://msdn.microsoft.com/en-us/library/windows/desktop/ms677527 (v = vs.85) . aspx
你能不能不要数一下底部的循环?或者可以将记录读入对象数组然后你可以自由地对其进行多次迭代
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 />"))