取出RecordSet資料時,使用For...Next迴圈取代While,Do...Loop迴圈

摘要:取出RecordSet資料時,使用For...Next迴圈取代While,Do...Loop迴圈

小喵檢視一下,發現觀念小喵竟然沒有寫上,趕緊補上提供大家參考

在ASP中經常回將資料庫取得的資料放在RecordSet中
然後再透過迴圈將資料展現於畫面上


小喵大部分看到的都是以While或者Do..Loop迴圈撰寫
例如以下這樣

If Not (rs.BOF And rs.EOF) Then
    rs.MoveFirst
    Do
        '在此取出資料
        rs.MoveNext    '這一行千萬不能忘了
    Loop Until rs.EOF
End If
 

這樣的寫法有個重大的危機,那就是當
rs.MoveNext忘了寫的話,會造成【無窮迴圈】
而這樣的事情,就連小喵也經常發生

為了改善這樣的缺點,於是小喵改變寫法,使用For...Next迴圈來展現資料

If Not(rs.BOF And rs.EOF) Then
    rs.MoveFirst
    For y = 1 to rs.RecordCount   '從第1筆到最後1筆(RecordCount)
        '在此取出資料
        rs.MoveNext
    Next
End If


用For...Next迴圈會有什麼樣的好處呢
想想如果忘記寫rs.MoveNext的話...會怎樣
他會是重複顯示第一筆資料
但絕不會造成無窮迴圈的發生(有多少筆資料,迴圈多少次,所以不會無窮)
這樣就可以避開因為撰寫的不小心造成無窮迴圈了

^_^


以下是簽名:


Microsoft MVP
Visual Studio and Development Technologies
(2005~2019/6) 
topcat
Blog:http://www.dotblogs.com.tw/topcat