当我从组合框中选择一个项目时,如何从数据库填充文本框

时间:2018-02-10 15:13:54

标签: vb.net visual-studio-2013

当我从组合框中选择一个项目时,我如何填充数据库第2列的文本框,其中ComboBox填充了数据库第1列

这就是我想要发生的事情: 当我从组合框中选择一个项目时,文本框将自动填充数据。

This is what i want to happen

这是我的表: 我想要的是当我选择客户名称时,文本框将由客户联系人自动填写。

My table

**这就是我试过的**

 Private Sub clientNameText_SelectedIndexChanged(sender As Object, e As EventArgs) Handles clientNameText.SelectedIndexChanged, clientNameText.TextChanged
    Try

        connection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Nikko Jaze Fabellon\Documents\ASRASIM.accdb")
        connection.Open()
        Dim reader As OleDbDataReader
        Dim cmdText = "select [Contact Person] from ServiceRecords where [ClientName] =' " & clientNameText.Text & "'"
        dataAdapter = New OleDbDataAdapter(cmdText, connection)
        Dim dtable As New DataTable
        dataAdapter.Fill(dtable)

        reader = dataAdapter.SelectCommand.ExecuteReader
        While reader.Read
            cPersonText.Text = reader.GetInt32("Contact Person")
        End While

    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
    connection.Close()
End Sub

1 个答案:

答案 0 :(得分:0)

只需将TextBox绑定到同一数据源,例如

myTextBox.DataBindings.Add("Text", ds.Tables("Clients"), "ColumnName")

编辑:这次,请实际按照我的建议行事。您需要查询来检索要显示的所有列。您使用数据适配器Fill DataTable,然后将DataTable绑定到您的控件。就是这样,就是这样。 E.g。

Dim adapter As New OleDbDataAdapter("SELECT ID, Name, Description FROM MyTable", "connection string here")
Dim table As New DataTable

adapter.Fill(table)

With myComboBox
    .ValueMember = "ID"
    .DisplayMember = "Name"
    .DataSource = table
End With

myTextBox.DataBindings.Add("Text", myDataTable, "Description")

这就是你需要的。在ComboBox中进行选择,TextBox将显示正确的数据。