在 SQL 数据 Reader 中打印多个结果

Print more than one result in SQL Data Reader

我有一个存储过程,它将 return 来自 table 的 1 个以上的值。但是,我只能打印 1 个结果,有人可以告诉我我做错了什么

vb.net代码

reader = cmd_loadMacro.ExecuteReader()
        reader.Read()
        MacroKey = reader.GetString(0)
        MacroValue = reader.GetString(1)

当我执行 SSMS 时,我的查询确实 return 结果,我应该返回 5 行,但只有 1 行被 returned

最新尝试(返回 0 个结果)

`reader.Read()

        If reader.HasRows Then
            While reader.Read()
                MacroKey = reader.GetString(0)
                MacroValue = reader.GetString(1)
            End While
        End If`

删除循环周围的 If reader.HasRows Then 位,然后重试。

我过去遇到过 reader.HasRows 返回意外结果的问题。

我在我的主程序 class 中使用了一个 for 循环,并将它传递给函数。这非常有效。

MacroKey = reader.GetString(0)
                MacroValue = reader.GetString(1)
                writer.WriteStartElement("djmacros") ' Root.
                writer.WriteStartElement("macro")
                writer.WriteAttributeString("name", MacroKey)
                writer.WriteAttributeString("type", "1000")
                writer.WriteAttributeString("value", MacroValue)
                writer.WriteEndElement()

                While reader.Read
                    MacroKey = reader.GetString(0)
                    MacroValue = reader.GetString(1)
                    writer.WriteStartElement("macro")
                    writer.WriteAttributeString("name", MacroKey)
                    writer.WriteAttributeString("type", "1000")
                    writer.WriteAttributeString("value", MacroValue)
                    writer.WriteEndElement()