Vb.net vb中组合框内的两个值

Vb.net vb中组合框内的两个值,vb.net,combobox,Vb.net,Combobox,我想创建一个包含两个字段的组合框 到目前为止,这是我的代码。 它只能显示区域编号,但我想在一行中显示区域名称。有人能帮我吗?任何帮助都将不胜感激。多谢各位 Sub getarea() Try Call MyConnection() Sql = "select AREA_NO as 'Anum', AREA_NAME as 'Aname', AREA_LOCX as 'Alocx' from area" Dim cmd As New My

我想创建一个包含两个字段的组合框

到目前为止,这是我的代码。
它只能显示区域编号,但我想在一行中显示区域名称。有人能帮我吗?任何帮助都将不胜感激。多谢各位

  Sub getarea()
    Try
        Call MyConnection()
        Sql = "select AREA_NO as 'Anum', AREA_NAME as 'Aname', AREA_LOCX as 'Alocx' from area"
        Dim cmd As New MySqlCommand(Sql, Con)
        Dim reader As MySqlDataReader
        reader = cmd.ExecuteReader
        Try
            Dim comboarea As New DataTable
            comboarea.Load(reader)
            cboareano2.DataSource = comboarea
            cboareano2.DisplayMember = "Anum"
            cboareano2.ValueMember = "Anum"
            cboareano2.SelectedIndex = -1

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    Catch ex As Exception
        MsgBox(ex.Message)
        Con.Close()
    End Try
End Sub


Private Sub cboAreaNo_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboAreaNo.SelectedIndexChanged
    Try
        Call MyConnection()
        Sql = "select AREA_NAME, AREA_LOCX from area where AREA_NO=@Anum"
        Dim cmd As New MySqlCommand
        With cmd
            .CommandText = Sql
            .Connection = Con
            .Parameters.AddWithValue("@Anum", cboAreaNo.SelectedValue)
            .ExecuteNonQuery()
        End With
        Dim reader As MySqlDataReader
        reader = cmd.ExecuteReader
        Try
            If reader.Read Then
                txtlocx.Text = reader.GetString(1)
                reader.Close()
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    Catch ex As Exception
        Con.Close()
    End Try
您在绑定
组合框时犯了一些错误,您是
将
Anum
分配给
DisplayMember
字段和
ValueMember
字段。因此,
SelectedItem
SelectedValue都是
区域编号`

所以你要做的是: 按如下所示重新编码绑定片段

    Dim comboarea As New DataTable
    comboarea.Load(reader)
    cboareano2.DataSource = comboarea
    cboareano2.DisplayMember = "Aname"
    cboareano2.ValueMember = "Anum"
    cboareano2.SelectedIndex = -1
  • 现在您可以通过
    cboareano2.Text
    cboareano2.选择editem.Text
  • 您将通过cboareano2.SelectedValue
  • 如果要同时显示代码和名称,请在查询中进行如下更改:

     Sql = "select AREA_NO as 'Anum', CONCAT(AREA_NO,'-',AREA_NAME) as 'Aname', AREA_LOCX as 'Alocx' from area"
    
    并绑定上面提到的结果