无法读取SqlDataReader对象

时间:2019-11-27 11:18:58

标签: sql sql-server vb.net tsql

试图从我的azure数据库获得响应,我正在使用推荐的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 个答案:

答案 0 :(得分:1)

由于您从表runname中获得了vNameCode,但是您正试图从reader中访问两个值。

进行以下一项更改:

  1. SELECT语句中包含相应的值。
  2. reader.GetString()移除Console.WriteLine

尝试以下

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