无法读取 SqlDataReader 对象
Posted
技术标签:
【中文标题】无法读取 SqlDataReader 对象【英文标题】:Cannot read SqlDataReader Object 【发布时间】:2019-11-27 11:18:58 【问题描述】:试图从我的 azure db 获得响应,我正在使用推荐的 microsoft snippet
Dim sb As StringBuilder = New StringBuilder()
sb.Append("select top 1 runname from vNameCode")
'sb.Append("where untgscod = ")
Dim sql As String = sb.ToString()
Using command As SqlCommand = New SqlCommand(sql, connection)
Using reader As SqlDataReader = command.ExecuteReader()
While reader.Read()
Console.WriteLine("0 1", reader.GetString(0), reader.GetString(1))
End While
但当我尝试读取这些值时,我得到了错误:
System.IndexOutOfRangeException: '索引超出了数组的范围。'
我取回了一个对象,但无法以推荐的方式读取它。任何想法我做错了什么?
【问题讨论】:
【参考方案1】:由于您从表vNameCode
中获取runname
,但您尝试从reader
访问两个值。
进行其中一项更改:
-
在
SELECT
语句中包含相应的值。
从Console.WriteLine
中删除reader.GetString()
试试下面
Dim sb As StringBuilder = New StringBuilder()
sb.Append("select top 1 runname from vNameCode")
Dim sql As String = sb.ToString()
Using command As SqlCommand = New SqlCommand(sql, connection)
Using reader As SqlDataReader = command.ExecuteReader()
While reader.Read()
Console.WriteLine("0", reader.GetString(0))
End While
End Using
End Using
【讨论】:
以上是关于无法读取 SqlDataReader 对象的主要内容,如果未能解决你的问题,请参考以下文章
C# - 无法将类型“IBM.Data.DB2.iSeries.iDB2DataReader”隐式转换为“System.Data.SqlClient.SqlDataReader”
C#使用SqlDataReader读取数据库数据时CommandBehavior.CloseConnection参数的作用