我用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时会出现以下错误
指定的无效列索引
发布于 2017-03-02 10:07:25
与其使用和OracleDataReader,不如考虑使用DataTable将数据加载到其中。为此,请使用以下代码:
Dim dt As New DataTable
dt.Load(myCommand.ExecuteReader)DataTable现在将包含一个DataRows集合。您可以使用这些为变量赋值,如下所示:
Value1 = dt.Rows(0).Item(0).ToString().Trim()
Value2 = dt.Rows(1).Item(0).ToString().Trim()
Value3 = dt.Rows(2).Item(0).ToString().Trim()这可能会解决您最初的问题,但可能会导致进一步的问题。正如ADyson在他的评论中所建议的:
@EmmaW.您可以在循环中添加一个计数器,这样您就可以知道自己在哪一行,并相应地填充属性。如果您有少量的属性,那么Bugs的建议也是明智的。听起来像是您的代码对象模型与您的数据库不完全匹配(垂直DB记录结构与水平对象结构),这可能是概念设计问题的标志。
https://stackoverflow.com/questions/42529901
复制相似问题