Как использовать datareader для получения данных в текстовое поле из списка выбранных элементов

#sql #vb.net #datareader

#sql #vb.net #datareader

Вопрос:

У меня есть форма с одним выпадающим списком и текстовым полем.
Теперь у меня есть база данных SQL с таблицей с именем balance . В нем есть два столбца, один из которых customername , а другой obbalance .
Теперь я привязал все имена клиентов к выпадающему списку.
Что мне нужно сделать, так это:
когда пользователь выбирает имя клиента из выпадающего списка, в текстовом поле должно отображаться obbalance выбранное customername . Здесь имя клиента не будет повторяться, только одно имя с клиентом.
Что я могу сделать? Пожалуйста, помогите мне.

     Dim conectionstring As String
    conectionstring = "Data Source=.SQLEXPRESS;AttachDbFilename=C:Documents and SettingsAdministratorMy DocumentsVisual Studio 2005ProjectsSHOPPROJECTSHOPPROJECTshop.mdf;Integrated Security=True;User Instance=True"


    Dim ST As String = ComboBox1.SelectedText

    Dim sqlcon As New SqlConnection(conectionstring)

    Dim sqlcmd As New SqlCommand("SELECT OBBALANCE FROM BALANCE WHERE CUSTOMERNAME =  " amp; " '" amp; ST amp; "'" amp; "", sqlcon)
    MessageBox.Show(TextBox1.Text)


    Dim result As Object

    Try
        sqlcon.Open()
        ' Dim sdr As SqlDataReader = sqlcmd.ExecuteReader()
        result = sqlcmd.ExecuteScalar()

        If result IsNot Nothing Then
            TextBox1.Text = result.ToString()
            MessageBox.Show(TextBox1.Text)

        End If

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

    End Try
End Sub
  

я сделал это, но все еще не могу увидеть значение в текстовом поле, а obbalance — это последнее значение из базы данных sql

Ответ №1:

 Private Sub doSomething()
Dim conectionstring As String
        conectionstring = "Data Source=.SQLEXPRESS;AttachDbFilename=C:Documents and SettingsAdministratorMy DocumentsVisual Studio 2005ProjectsSHOPPROJECTSHOPPROJECTshop.mdf;Integrated Security=True;User Instance=True"


    Dim ST As String = ComboBox1.SelectedText

    Dim sqlcon As New SqlConnection(conectionstring)

    Dim sqlcmd As New SqlCommand("SELECT OBBALANCE, CUSTOMERNAME FROM BALANCE" ,sqlcon)
    sqlcmd.CommandType = CommandType.Text

    Try
        sqlcon.Open()
        Dim sdr As SqlDataReader = sqlcmd.ExecuteReader()

        If sdr IsNot Nothing Then
            Dim dt As DataTable
            dt.Load(sdr)

            With yourCombobox
                .DataSource = dt
                .DisplayMember = "CUSTOMERNAME"
                .ValueMember = "OBBALANCE"

            End With

        End If

    Catch ex As SqlException
        MessageBox.Show(ex.Message)
    End Try
End Sub

Private Sub comboBoxChange(ByVal sender As Object, ByVal e As System.EventArgs) Handles yourCombobox.SelectedIndexChanged

textbox.text = yourCombobox.SelectedValue.ToString

End Sub
  

Комментарии:

1. Я поместил ваш SqlDataReader в Datatable . Затем привязал это Datatable к вашему выпадающему списку. Затем в SelectedIndexChanged событии для вашего combobox я добавил код, чтобы захватить текст из combobox и поместить его в textbox .

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

3. Это то, что устанавливает With End With инструкция. Он привязывает Datatable столбец как DisplayMember (CustomerName), а столбец как ValueMember (Obbalance) вашего ComboBox . Я обновил, SelectedIndexChanged чтобы захватить value из ComboBox , установив его в качестве TextBox текстового значения.

4. Затемнить dt как DataTable dt.Load(objDataReader) С ComboBox1.SelectedItem .DataSource = dt . DisplayMember = dt «ИМЯ_КЛИЕНТА» // ЗДЕСЬ ОТОБРАЖАЕТСЯ ОШИБКА, КОНЕЦ ИНСТРУКЦИИ НЕВЕРЕН, КАК И ТО, КАК ЗАПИСАТЬ ЗДЕСЬ .ValueMember = dt ЗАВЕРШАЕТ баланс с помощью TextBox1.Text = ComboBox1.SelectedValue. toString

5. ИЗВИНИТЕ, ЧТО СНОВА БЕСПОКОЮ вас, СЭР, не могли бы вы отредактировать мой вопрос и поместить этот код туда, куда я должен поместить ваш отредактированный код, это сбивает меня с толку, пожалуйста, помогите мне отредактировать мой вопрос и разместить свой код там, где он должен быть, сэр, пожалуйста, помогите мне………