ADO中的多重循环进入了死循环
请大家看一段代码片段:
With cmd
.ActiveConnection = cnn
.CommandTimeout = 30
.CommandType = adCmdText
.CommandText = "select * from a "
Set rst = .Execute
End With
If Not (rst.EOF And rst.BOF) Then
rst.MoveFirst
Do While Not rst.EOF
detail = " "
title = " "
user_id = rst.Fields(0)
title = Trim(rst.Fields(1))
mo = " "
Do While rst.Fields(0) = user_id
detail = detail + Trim(rst.Fields(2))
mo = rst.Fields(2)
Do While rst.Fields(2) = mo
detail = detail + Trim(rst.Fields(3))
rst.MoveNext
Loop
Loop
detail = title + Chr(13) + detail
Loop
End If
下面是我的数据范例
aaabcd
aaabbccdd
aaabbbccdd
bbbbcd
bbbbbcd
bbbbbbccdd
cccbcd
cccbcdd
我对循环的最初设想是这样的:
1)先判断rst是否为eof,如果不是,继续循环
2)判断rst.Fields(0)是否相同,如果相同,在同一循环,否则进入下一循环
3)判断rst.Fields(2)是否相同,如果相同,在同一循环,否则进入下一循环
现在的问题是前面的几次循环是正常的,但到了最后一次循环,也就是rst.Fields(0)=ccc时,其实当时rst已经到了eof,我的整个循环应该结束,但是程序进入了死循环,无法跳出,请高手指点原因。
[解决办法]
没有明白什么意思,不好意思呀