2013-03-26 34 views
0

嘿在這裏我的問題我打電話一個存儲過程,我把記錄​​放入一個ADODB記錄集。 當我檢查field.count它說我得到了6結果這是很好的。但是,當我嘗試循環到該記錄集時,它跳過其中一個。我的繼承人代碼如何在VB中獲取Recordset中的每條記錄?

oRs = g_oSQL.GetRecords("PS_palFetchAllPalette_sel") 
     If Not oRs Is Nothing Then 
      cmbPallet.Items.Clear() 
      oRs.MoveFirst() 

      While Not oRs.EOF 
       If oRs.Fields.Item("palcode").Value.ToString() <> "None" Then 
        cmbPallet.Items.Add(oRs.Fields.Item("palcode").Value.ToString()) 
       End If 
       oRs.MoveNext() 
      End While 
+0

這個代碼在調試器步進會幫助你很多推測爲什麼一個記錄丟失。 – Steve 2013-03-26 15:42:19

回答

1

我認爲發生的事情是當你與oRs.MoveNext達到你的最後一條記錄(),那麼你是在EOF所以下一個循環就不會發生。嘗試改變循環的結構。

With oRs 
    Do Until .EOF 
    'get your data 
    .MoveNext 

    Loop 

末隨着

+0

沒關係我找到了問題,我copi粘貼和從另一個程序的一部分我的代碼是一個移動的,做了完全相同的事情,它發生了什麼失蹤不必出現在它的移動形式 – 2013-04-17 15:03:52

1

我還沒有和ADODB工作了一段時間,但不會field.count顯示字段中記錄的數量,而不是返回的記錄數?您可能返回了0條記錄,但仍然在查詢中具有元數據。

你確定你的「無」檢查工作?這將要求palcode不是空的或空的,但具有「無」的實際值。在While循環中設置一個斷點,看看你是否得到你所期望的。

相關問題