как использовать datareader при получении значения в текстовое поле - PullRequest
0 голосов
/ 26 апреля 2011

Привет, друг! Я использую форму с * комбинированным списком *, в котором элементы, которые я взял из базы данных sqld, названы балансом, и эта база данных имеет два столбца: один - имя клиента, а другой - балансировка.

В форме я связал все имена клиентов из таблицы, и теперь у меня есть текстовое поле, которое я хочу сделать, когда пользователь выбирает элемент combobox.selected любое имя клиента, которое мне нужно, чтобы отобразить дисбалансвыбранный клиент в текстовом поле tat

Я использовал datareader, но он показывает ошибку, можете ли вы PLZ помочь мне ........

    Dim ST As String = ComboBox1.SelectedItem

    Dim sqlcon As New SqlConnection(conectionstring)

    Dim sqlcmd As New SqlCommand("SELECT OBBALANCE FROM BALANCE WHERE CUSTOMERNAME =  " & " '" & ST & "'" & "", sqlcon)
    Dim sdr As New SqlDataReader


    Try
        con.Open()
        sdr = sqlcmd.ExecuteReader
        While (sdr.Read())
            Textbox7.Text = sdr[1]

        End While
    Catch ex As SqlException
        MessageBox.Show(ex.Message)

    End Try

Icant понять, как читать PLZ, помогите мнедля чтения данных и в таблице сначала указывается имя столбца, а затем поле разбаланса

Ответы [ 2 ]

3 голосов
/ 26 апреля 2011

Поскольку вы собираетесь читать одно значение из базы данных, используйте метод ExecuteScalar вместо использования устройства чтения данных.

Dim ST As String = ComboBox1.SelectedText 

Dim sqlcon As New SqlConnection(conectionstring)

Dim sqlcmd As New SqlCommand("SELECT OBBALANCE FROM BALANCE WHERE CUSTOMERNAME = '" & ST & "'" , sqlcon)
Dim result as Object

Try
    con.Open()

    result = sqlcmd.ExecuteScalar()

    If result IsNot Nothing Then
         Textbox7.Text = result.ToString() 
    End If

Catch ex As SqlException
    MessageBox.Show(ex.Message)     

End Try

Обновление:
Изменен код для проверки на ноль.
Удален объект чтения данных, так как он больше не требуется.
Удалены ненужные символы из запроса.

0 голосов
/ 26 апреля 2011
Dim ST As String = ComboBox1.SelectedText 

    Dim sqlcon As New SqlConnection(conectionstring)

    Dim sqlcmd As New SqlCommand("SELECT OBBALANCE FROM BALANCE WHERE CUSTOMERNAME =  " & " '" & ST & "'" & "", sqlcon)
  Dim sdr As SqlDataReader


    Try
        sqlcon.Open() 'edited
        sdr = sqlcmd.ExecuteReader()
        While (sdr.Read())
            TextBox1.Text = sdr("OBBALANCE").ToString() 'sdr(1) is wrong since there is only one item
        End While
    Catch ex As SqlException
        MessageBox.Show(ex.Message)


    End Try
...