For Next循环在极限处继续



我正在做一个应用程序,由于某种原因,我在理解一些东西方面有问题。我有这样的代码....

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

最新更新