在SQL数据读取器中打印多个结果

时间:2017-06-05 13:42:27

标签: sql vb.net stored-procedures sqldatareader

我有一个存储过程,它将从表中返回多个值。但是,我只能打印1个结果,有人可以告诉我我做错了什么

vb.net代码

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

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

最新尝试(这会带来0结果)

`reader.Read()

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

2 个答案:

答案 0 :(得分:0)

删除循环周围的If reader.HasRows Then位并再次尝试。

我在读者方面遇到了问题.HasRows过去会发出意想不到的结果。

答案 1 :(得分:0)

我在主类中使用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()