当我从组合框中选择一个项目时,我如何填充数据库第2列的文本框,其中ComboBox填充了数据库第1列
这就是我想要发生的事情: 当我从组合框中选择一个项目时,文本框将自动填充数据。
这是我的表: 我想要的是当我选择客户名称时,文本框将由客户联系人自动填写。
**这就是我试过的**
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
答案 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
将显示正确的数据。