Странная проблема с массивом ..... нужен совет по этому вопросу - PullRequest
3 голосов
/ 23 февраля 2012

Я читаю данные из базы данных sql, и соединение происходит, но возникает следующая ошибка:

 {"Index was outside the bounds of the array."}

На этой строке:

 TextBox2.Text = TextBox2.Text & sqRdr.GetValue(22) & vbCrLf

Пожалуйста, помогите мне с этим, поскольку я посчитал все столбцы в моей таблице, и они оказались точно (22).

Ответы [ 2 ]

3 голосов
/ 23 февраля 2012

Порядковый номер столбца для источника данных равен 0, поэтому 22-й столбец будет sqRdr.GetValue(21)

1 голос
/ 23 февраля 2012

Ваш Datareader должен быть таким, как показано ниже, чтобы избежать этой проблемы в случае, когда вы увеличите / уменьшите количество столбцов в будущем ....

DR["ColumnName"]

SqlDataReader's это [имя строки] выглядит так:

Public Overrides Default ReadOnly Property Item(name As String) As Object
    Get
        Return Me.GetValue(Me.GetOrdinal(name))
    End Get
End Property

Ниже приведен пример кода ...

Using con As System.Data.SqlClient.SqlConnection = New SqlConnection("YourConnection string")
    con.Open()
    Dim cmd As New SqlCommand()
    Dim expression As String = "Parameter value"
    cmd.CommandType = CommandType.StoredProcedure
    cmd.CommandText = "Your Stored Procedure"
    cmd.Parameters.Add("Your Parameter Name", SqlDbType.VarChar).Value = expression
    cmd.Connection = con
    Using dr As IDataReader = cmd.ExecuteReader()
                'You code like ....dr["YourColumnName"]
        If dr.Read() Then
        End If
    End Using
End Using
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...