2013-03-26 285 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循环中设置一个断点,看看你是否得到你所期望的。

相关问题