POPULAR COMBOBOX COM COLUNA DA TABELA

BRUNOGOMES 26/10/2012 11:18:09
#412871
Pessoal, a minha duvida é a seguinte:
Eu quero popular uma combobox com os nomes das colunas da tabela. E nao com os registros.. Por exemplo: Nome, Contato, etc..
Como eu faço isso ??

Para aparecer os registros eu faço assim: Agora para aparecer os nomes das colunsa eu n sei como faço..
Dim con As New MySqlConnection([Ô]server=localhost; user id=root; password=admin; database=workshopmanager[Ô])
Dim dados As New DataSet
con.Open()
Dim comando As String = [Ô]SELECT * FROM cliente[Ô]
Dim adaptador As New MySqlDataAdapter(comando, con)
adaptador.Fill(dados, [Ô]cliente[Ô])
With cmb_Cliente
.ValueMember = [Ô]cod_Cliente[Ô]
.DataSource = dados.Tables(0)
.DisplayMember = [Ô]nome_Cliente[Ô]
End With
con.Close()
KERPLUNK 26/10/2012 11:32:28
#412874
Já deu uma olhadinha na documentação do MySQL? Existe o comando Describe
Ele retorna um recordset normal que você pode usar assim:
  
Dim dados As New DataSet
con.Open()
Dim comando As String = [Ô]DESCRIBE cliente[Ô]
Dim adaptador As New MySqlDataAdapter(comando, con)
adaptador.Fill(dados, [Ô]cliente[Ô])
With cmb_Cliente
.ValueMember = [Ô]FIELD[Ô]
.DataSource = dados.Tables(0)
.DisplayMember = [Ô]FIELD[Ô]
End With
con.Close()
BRUNOGOMES 26/10/2012 11:50:58
#412876
ahh funcionou apareceu o nome das colunas...

E uma pergunta como faço para editar esses valores??
Tipow nao quero q apareça todos, só alguns que eu queira usar..
e alguns queria mudar o nome... pq ta nome_Cliente, ai quero dexar só Nome..

KERPLUNK 26/10/2012 11:57:38
#412878
Para aparecer só alguns, você vai ter que fazer bem diferente. Popule essas colunas em um list genérico, com um condicional no loop excluindo as colunas que não quer.
Quanto à mudar os nomes no banco daí vai ficar bem mais complicado...
ROBIU 26/10/2012 13:47:17
#412895
Por que você não carregar a combobox de uma lista ou de um vetor? Se você vai escolher os campos, vai precisar saber o nome dos campos. Formas de popular combobox
con.Open()
Dim comando As String = [Ô]SELECT Campo1 as Codigo, Campo2 as Cliente FROM Cliente[Ô]
Dim adaptador As New MySqlDataAdapter(comando, con)
adaptador.Fill(dados, [Ô]cliente[Ô])

For i As Integer = 0 To dados.Tables(0).Columns.Count - 1
cmb_Cliente.Items.Add(dados.Tables(0).Columns(i).ColumnName.ToString)
Next i
con.Close()
BRUNOGOMES 26/10/2012 13:53:03
#412897
ficou aparecendo Cliente, Cliente1...
e eu mudei para assim: [Ô]SELECT nome_Cliente as Cliente, contato_Cliente as Cliente FROM Cliente[Ô]
ROBIU 26/10/2012 14:02:13
#412899
Citação:

[Ô]SELECT nome_Cliente as Cliente, contato_Cliente as Cliente FROM Cliente[Ô]



Claro você está dando o mesmo apelido para os dois campos:

[Ô]SELECT nome_Cliente as NOME, contato_Cliente as CONTRATO FROM Cliente[Ô] 


Tópico encerrado , respostas não são mais permitidas