我正在处理一个应用程序,出于某种原因,我有一个问题需要理解。我的代码看起来像这样......
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,它应该只是退出循环 - 但它似乎回到循环的顶部,即使没有记录。任何人都知道为什么会这样?
答案 0 :(得分:3)
RecordCount
返回已读取的记录数或类似内容 - 它不返回记录总数,该值在记录集具有之前是未知的已被迭代。
因此For...Next
循环无法有效地迭代记录集。
尝试使用While
循环:
While Not rs.BOF And Not rs.EOF
'stuff
rs.MoveNext
Wend
答案 1 :(得分:1)
你的循环没有终止的主要原因是你没有给它任何导致它终止的条件。
此外,VB每次循环都不检查循环限制。它只在开始时检查它。即使Number
的值发生了变化,以下代码仍会打印100次:
Dim Number As Integer = 100
For x As Integer = 0 To Number
Console.WriteLine(x)
Number = 99
Next