在 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()
我有一个存储过程,它将 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()