【发布时间】:2017-03-01 10:58:55
【问题描述】:
我使用while(dr.Read()){...}。但是我在读取数据时遇到了问题。
我有一张这样的桌子:
Column1
value1
value2
value3
我想得到Value1、Value2和Value3
我是这样做的:
Using myDataReader As OracleDataReader = myCommand.ExecuteReader
While (myDataReader.Read())
Value1= myDataReader.GetValue(0).ToString().Trim()
Value2 = myDataReader.GetValue(1).ToString().Trim()
Value3 = myDataReader.GetValue(2).ToString().Trim()
End While
End Using
我可以检索Value1,但是在尝试检索Value2 和Value3 时出现以下错误:
指定的列索引无效
【问题讨论】:
-
只有一列(在索引 0 处)。您可以使用
List(Of String)来存储数据并添加在while 循环的每次迭代中返回的值。 -
@Andrew Morton 你能展示代码示例吗?
-
.Read() 一次返回一行。 GetValue(0) 从该行的第一个 列 获取值。 GetValue(1) 从第二列中获取值,在您的情况下该值不存在。您需要创建一个列表或数组,并在每次运行 .Read() 时(如果您得到 3 个结果,这将是 3 次,但这没关系 - 它可以读取数百万行而无需对代码进行任何更改) 您将 GetValue(0) 的结果添加到列表的末尾。
-
@ADyson 问题是我有很多属性,我需要用数据库中的值初始化每个属性
标签: vb.net sqldatareader datareader oledbdatareader