0

嘿,我的问题是我正在调用存储过程,并将记录放入 ADODB 记录集中。当我检查 field.count 时,它说我得到了 6 个结果,这很好。但是,当我尝试循环进入该记录集时,它会跳过其中一个。这是我的代码

  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
4

2 回答 2

1

我认为发生的情况是,当您使用 oRs.MoveNext() 到达您的最后一条记录时,您就处于 EOF,因此不会发生下一个循环。尝试改变循环的结构。

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

  Loop

结束于

于 2013-03-26T16:48:34.053 回答
1

我有一段时间没有使用 ADODB,但是 field.count 不会指示记录集中的字段数而不是返回的记录数吗?您可能已返回 0 条记录,但查询中仍有元数据。

您确定您的“无”检查有效吗?这将要求 palcode 不是空的或 Null,而是具有“无”的实际值。在 While 循环中设置一个断点,看看你是否得到了你所期望的。

于 2013-03-26T15:47:30.913 回答