点击ListBox中从SQL表加载的ItemName时如何将对应字段填充到文本框
功能实现步骤
第一步:优化现有数据绑定逻辑
在你现有的窗体加载绑定代码末尾追加一行设置ValueMember的代码,方便后续取值(非强制但更规范):
Dim cmd As New SqlCommand("select * FROM Items") cmd.Connection = connection Dim adp As New SqlDataAdapter(cmd) Dim dt As New DataTable() adp.Fill(dt) ListBox1.DataSource = dt ListBox1.DisplayMember = "ItemName" ' 新增以下行 ListBox1.ValueMember = "ItemId"
第二步:添加ListBox选中变化事件处理逻辑
给ListBox1添加SelectedIndexChanged事件,当用户点击选中项时触发取值填充逻辑,代码如下:
Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged ' 先判断是否有选中项,避免空引用报错 If ListBox1.SelectedItem Is Nothing Then Return ' 转换选中项为DataRowView(绑定DataTable时选中项默认是该类型) Dim selectedRow As DataRowView = CType(ListBox1.SelectedItem, DataRowView) ' 填充对应文本框,以下文本框名称请替换为你实际窗体中的控件名 txtItemId.Text = selectedRow("ItemId").ToString() txtItemName.Text = selectedRow("ItemName").ToString() ' 处理可能为空的Details字段,避免DBNull报错 txtDetails.Text = If(IsDBNull(selectedRow("Details")), "", selectedRow("Details").ToString()) End Sub
注意事项
- 请将代码中的
txtItemId、txtItemName、txtDetails替换为你自己窗体上对应文本框的Name属性值 - 如果ItemId是数值类型需要做运算,可以在ToString后自行转换为Integer等对应类型
内容的提问来源于stack exchange,提问作者Potato Python Learner
相关产品推荐
相关产品推荐

