我正在做一个应用程序,由于某种原因,我在理解一些东西方面有问题。我有这样的代码....
dim number as integer
number = rs.recordcount (only 1 record - so number = 1)
for x = 1 to Number
'stuff
'stuff
rs.moveNext
Next
我假设一旦它到达rs.movenext,然后进入Next,它应该简单地退出循环-然而它似乎回到循环的顶部,即使没有记录。有人知道为什么会这样吗?
RecordCount
返回已读取的记录的数量,或者类似的东西- 它不返回记录的总数,该值在记录集迭代之前是不知道的。
所以For...Next
循环不能有效地迭代记录集。
试试While
循环:
While Not rs.BOF And Not rs.EOF
'stuff
rs.MoveNext
Wend
你的循环没有终止的主要原因是你没有给它任何导致它终止的条件。
同样,VB不会在每次通过循环时检查循环限制。它只在开始时检查。即使Number
的值改变了,下面的代码仍然会打印100次:
Dim Number As Integer = 100
For x As Integer = 0 To Number
Console.WriteLine(x)
Number = 99
Next