You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从SQL列填充ComboBox后,实现联动显示对应行至TextBox

实现ComboBox选中项联动显示对应行数据到TextBox

嘿,你已经搞定了ComboBox的数据绑定,接下来只需要添加上选中事件的处理逻辑,就能实现联动显示啦!

具体实现步骤:

  1. 给ComboBox添加SelectedIndexChanged事件处理方法——你可以直接在设计器里双击ComboBox1,自动生成事件框架;也可以手动在代码里添加绑定。
  2. 在事件方法中,获取选中行的DataRowView对象(因为绑定DataTable时,ComboBox的选中项本质是DataRowView类型),然后提取对应列的值赋值给目标TextBox。

修改后的完整代码:

Imports System.Data.SqlClient
Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim con As New SqlConnection("Data Source=xxxx;Initial Catalog=ltLeavers;Integrated Security=True")
        Dim da As New SqlDataAdapter("SELECT * FROM dbo.mytable", con)
        Dim dt As New DataTable
        da.Fill(dt)
        ComboBox1.DisplayMember = "DISPLAY_NAME"
        ComboBox1.DataSource = dt
    End Sub

    ' 新增ComboBox选中事件处理逻辑
    Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
        ' 先判断是否选中了有效项,避免空引用报错
        If ComboBox1.SelectedItem IsNot Nothing Then
            ' 将选中项转换为DataRowView类型
            Dim selectedRow As DataRowView = DirectCast(ComboBox1.SelectedItem, DataRowView)
            
            ' 给对应的TextBox赋值,记得替换成你实际的TextBox控件名
            ' 加入DBNull判断,处理数据库列值为空的情况
            TextBoxEmail.Text = If(IsDBNull(selectedRow("EMAIL_ADDRESS")), "", selectedRow("EMAIL_ADDRESS").ToString())
            TextBoxDepartment.Text = If(IsDBNull(selectedRow("DEPARTMENT")), "", selectedRow("DEPARTMENT").ToString())
        End If
    End Sub
End Class

小提醒:

  • 要确保你界面上的TextBox控件名称和代码里的TextBoxEmail、TextBoxDepartment一致,或者根据实际控件名修改代码。
  • 加入IsDBNull判断是为了避免数据库中对应列值为空时,程序抛出运行时异常。

内容的提问来源于stack exchange,提问作者CyronDnB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:09:46