none
Como adicionar dois valores a uma linha do combobox? RRS feed

  • Pergunta

  • Galera seguinte, consegui carregar um combobox com os dados de uma tabela de produtos, até ai tudo bem tudo funcionando na boa, coloquei o codigo pra mostra na combobox o campo "NOME". No caso queria saber se é possivel eu colocar tbm na mesma linha do combobox um ", modelo" pra ficar mais especifico que tbm é um campo da MESMA tabela. é possivel isso?

    Aqui vai o codigo:

    Private Sub frm_orcamento_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim strconexao As String
            strconexao = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " & Application.StartupPath & "\JirauBD.accdb"
            Dim conectar As New OleDb.OleDbConnection
    
            conectar.ConnectionString = strconexao
            conectar.Open()
            'ABRIU CONEXAO
            Dim cmd As New OleDb.OleDbCommand
            cmd.Connection = conectar
            cmd.CommandText = "SELECT nome, modelo From TBprodutos"
    
            Dim adapter As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(cmd)
            Dim ds As DataSet = New DataSet()
    
            'onde ta escrito "funcionarios" vc coloca o nome da tabela
            adapter.Fill(ds, "TBProdutos")
    
            Dim pRow As DataRow
            For Each pRow In ds.Tables("TBProdutos").Rows
                cb_add1.Items.Add(pRow("nome").ToString())
    
            Next
        End Sub
    End Class

    • Editado Wender.Mata terça-feira, 7 de outubro de 2014 18:25
    terça-feira, 7 de outubro de 2014 18:23

Respostas

  • Só adaptar (se é isso mesmo que entendi,rs)

        Sub New()
            ' This call is required by the designer.
            InitializeComponent()
            ' Add any initialization after the InitializeComponent() call.
            SetData()
        End Sub
    
        Sub SetData()
            Dim xDta As New DataTable
            Using comando As New System.Data.SqlClient.SqlDataAdapter("SELECT PRO_CODIGO,PRO_DESCRI FROM PRODUTO", Conexao.StringConexaoSql)
                With comando
                    .Fill(xDta)
                    Call SetCombo(xDta)
                End With
            End Using
        End Sub
    
        Sub SetCombo(vDataT As DataTable)
            'verifica se o datatable esta vazio
            If (Not vDataT Is Nothing) Then
                'crio uma variavel do tipo da classe DataRow para percorrer as linhas do datatable
                For Each l As DataRow In vDataT.Rows
                    'seto na combobox valores da coluna 0 (PRO_CODIGO) e o campo 1 (PRO_DESCRI) 
                    Me.ComboBox1.Items.Add(String.Concat("Cod:", l(0), " - Descri:", l(1)))
                Next
            End If
        End Sub


    Microsoft Technology Associate (MTA)

    • Sugerido como Resposta Mr. GMSOFT quarta-feira, 8 de outubro de 2014 19:15
    • Marcado como Resposta Ricardo Barbosa Cortes quinta-feira, 9 de outubro de 2014 19:45
    terça-feira, 7 de outubro de 2014 19:31
  • Vou simplificar o que Eduardo1990 tentou explicar, basta concatenar :

    Me.ComboBox1.Items.Add(String.Concat("Cod:", l(0), " - Descri:", l(1)))

    Onde "Cod:", l(0), " => equivale ao CÓDIGO
    e" - Descri:", l(1)) => DESCRIÇÃO

    Resultado (Exemplo):   35 - Maquina de Lavar 

      
    quarta-feira, 8 de outubro de 2014 19:15

Todas as Respostas

  • Só adaptar (se é isso mesmo que entendi,rs)

        Sub New()
            ' This call is required by the designer.
            InitializeComponent()
            ' Add any initialization after the InitializeComponent() call.
            SetData()
        End Sub
    
        Sub SetData()
            Dim xDta As New DataTable
            Using comando As New System.Data.SqlClient.SqlDataAdapter("SELECT PRO_CODIGO,PRO_DESCRI FROM PRODUTO", Conexao.StringConexaoSql)
                With comando
                    .Fill(xDta)
                    Call SetCombo(xDta)
                End With
            End Using
        End Sub
    
        Sub SetCombo(vDataT As DataTable)
            'verifica se o datatable esta vazio
            If (Not vDataT Is Nothing) Then
                'crio uma variavel do tipo da classe DataRow para percorrer as linhas do datatable
                For Each l As DataRow In vDataT.Rows
                    'seto na combobox valores da coluna 0 (PRO_CODIGO) e o campo 1 (PRO_DESCRI) 
                    Me.ComboBox1.Items.Add(String.Concat("Cod:", l(0), " - Descri:", l(1)))
                Next
            End If
        End Sub


    Microsoft Technology Associate (MTA)

    • Sugerido como Resposta Mr. GMSOFT quarta-feira, 8 de outubro de 2014 19:15
    • Marcado como Resposta Ricardo Barbosa Cortes quinta-feira, 9 de outubro de 2014 19:45
    terça-feira, 7 de outubro de 2014 19:31
  • Desculpa Eduardo1990 mas li e reli varias vezes o código e fiquei meio confuso, fui tentar aplicar ao meu código e provavelmente por não conseguir entender direito não deu certo :\

    • Sugerido como Resposta Mr. GMSOFT quarta-feira, 8 de outubro de 2014 19:15
    • Não Sugerido como Resposta Mr. GMSOFT quarta-feira, 8 de outubro de 2014 19:15
    quarta-feira, 8 de outubro de 2014 17:12
  • Vou simplificar o que Eduardo1990 tentou explicar, basta concatenar :

    Me.ComboBox1.Items.Add(String.Concat("Cod:", l(0), " - Descri:", l(1)))

    Onde "Cod:", l(0), " => equivale ao CÓDIGO
    e" - Descri:", l(1)) => DESCRIÇÃO

    Resultado (Exemplo):   35 - Maquina de Lavar 

      
    quarta-feira, 8 de outubro de 2014 19:15