如何在VB中的Recordset中获取每条记录?

时间:2013-03-26 15:11:53

标签: vb.net winforms

嘿,我的问题是我正在调用存储过程并将记录放入ADODB RecordSet中。 当我检查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

2 个答案:

答案 0 :(得分:1)

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

您确定检查“无”是否有效?这将要求palcode不是空的或Null但实际值为“None”。在While循环中设置一个断点,看看你是否达到预期的效果。

答案 1 :(得分:1)

我认为当你用oRs.MoveNext()到达你的最后一条记录时,你会在EOF,所以下一个循环不会发生。尝试改变循环的结构。

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

  Loop

结束