【问题标题】:Cannot read SqlDataReader Object无法读取 SqlDataReader 对象
【发布时间】: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: '索引超出了数组的范围。'

我取回了一个对象,但无法以推荐的方式读取它。任何想法我做错了什么?

【问题讨论】:

    标签: sql sql-server vb.net tsql


    【解决方案1】:

    由于您从表vNameCode 中获取runname,但您尝试从reader 访问两个值。

    进行其中一项更改:

    1. SELECT 语句中包含相应的值。
    2. 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-12
      • 2018-11-08
      • 2019-03-10
      相关资源
      最近更新 更多