COMBOBOX DADOS
Pessoal, estou populando uma combobox dessa maneira:
O que eu quero saber é se no .displaymember tem como colocar mais de uma coluna... queria colocar alem do marca_veiculo, colocar tbm: [Ô]modelo_Veiculo[Ô] e [Ô]ano_Veiculo[Ô]
Dim con As New MySqlConnection([Ô]server=localhost; user id=root; password=admin; database=workshopmanager[Ô])
Dim dados As New DataSet
Dim comando As String = [Ô]SELECT * FROM veiculo[Ô]
Dim adaptador As New MySqlDataAdapter(comando, con)
adaptador.Fill(dados, [Ô]veiculo[Ô])
With cmb_Veiculo
.ValueMember = [Ô]cod_Veiculo[Ô]
.DataSource = dados.Tables(0)
.DisplayMember = [Ô]marca_Veiculo[Ô]
End With
O que eu quero saber é se no .displaymember tem como colocar mais de uma coluna... queria colocar alem do marca_veiculo, colocar tbm: [Ô]modelo_Veiculo[Ô] e [Ô]ano_Veiculo[Ô]
Assim da certo
é apenas adaptar ao seu projeto
sql = [Ô]select municipio,id from cidades order by municipio[Ô]
Comando = New MySqlCommand(sql, Conexao)
Dim leitor As MySqlDataReader = Comando.ExecuteReader
While leitor.Read
With cboCidades
.Items.Add(leitor.Item([Ô]municipio[Ô]).ToString() & [Ô] [Ô] & leitor.Item([Ô]id[Ô]).ToString)
End With
End While
leitor.Close()
Aqui pego o municipio e o ID
é apenas adaptar ao seu projeto
sql = [Ô]select municipio,id from cidades order by municipio[Ô]
Comando = New MySqlCommand(sql, Conexao)
Dim leitor As MySqlDataReader = Comando.ExecuteReader
While leitor.Read
With cboCidades
.Items.Add(leitor.Item([Ô]municipio[Ô]).ToString() & [Ô] [Ô] & leitor.Item([Ô]id[Ô]).ToString)
End With
End While
leitor.Close()
Aqui pego o municipio e o ID
com esse exemplo, aparace os dados certin.. mas na hora do insert, ele n salva!
é mais fácil jogar em textbox,Para depois fazer a gravação
mais no meu exemplo nao tem como.... quero q apareca os dados no combobox e de o insert nele mesmo...
esta colocando no combobox assim:
E esta dando o INSERT assim:
mas o veiculo nao esta cadastrando!!
esta colocando no combobox assim:
Dim con As New MySqlConnection([Ô]server=localhost; user id=root; password=admin; database=workshopmanager[Ô])
con.open()
Dim sql As String = [Ô]SELECT * FROM veiculo[Ô]
Dim comando = New MySqlCommand(sql, con)
Dim leitor As MySqlDataReader = comando.ExecuteReader
While leitor.Read
With cmb_Veiculo
.ValueMember = [Ô]cod_Veiculo[Ô]
.Items.Add(leitor.Item([Ô]marca_Veiculo[Ô]).ToString() & [Ô] [Ô] & leitor.Item([Ô]modelo_Veiculo[Ô]).ToString() & [Ô] [Ô] & leitor.Item([Ô]ano_Veiculo[Ô]).ToString)
End With
End While
leitor.Close()
E esta dando o INSERT assim:
Private Sub btn_Salvar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Salvar.Click
btnSalvar()
Dim con As New MySqlConnection([Ô]server=localhost; user id=root; password=admin; database=workshopmanager[Ô])
Dim cmd As New MySqlCommand
Dim reader As MySqlDataReader
cmd = con.CreateCommand
con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = [Ô]INSERT INTO manutencao (descricao_Manutencao, data_Manutencao, hora_Manutencao, valor_Manutencao, cod_Mecanico, cod_Servico, cod_Veiculo) VALUES (@desc, @data, @hr, @valor, @codVeiculo)[Ô]
.Parameters.Add([Ô]@desc[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@desc[Ô]).Value = txt_descricao.Text
.Parameters.Add([Ô]@data[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@data[Ô]).Value = DateTimePicker1.Text
.Parameters.Add([Ô]@hr[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@hr[Ô]).Value = txt_hora.Text
.Parameters.Add([Ô]@valor[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@valor[Ô]).Value = lbl_valortext.Text
.Parameters.Add([Ô]@codVeiculo[Ô], MySqlDbType.VarChar)
.Parameters([Ô]@codVeiculo[Ô]).Value = cmb_Veiculo.SelectedValue
If cmb_Veiculo.Text = [Ô][Ô] Then
btnAdicionar()
MessageBox.Show([Ô]é necessário que todos os campos com * sejam preenchidos![Ô], [Ô]Aviso[Ô], MessageBoxButtons.OK, MessageBoxIcon.Information)
con.Close()
Else
cmd.ExecuteNonQuery()
MessageBox.Show([Ô]Agendamento cadastrado com sucesso![Ô], [Ô]Aviso[Ô], MessageBoxButtons.OK, MessageBoxIcon.Information)
.CommandText = [Ô]SELECT cod_Manutencao FROM manutencao WHERE data_Manutencao = @data[Ô]
reader = cmd.ExecuteReader
reader.Read()
codManutencao = reader.GetString([Ô]cod_Manutencao[Ô])
lbl_cod.Text = codManutencao
con.Close()
End If
con.Close()
End With
End Sub
mas o veiculo nao esta cadastrando!!
alguem ae pode ajudar ?
Apresenta erro ?
Se sim, qual ?
Se não apresenta erro
altera essa linha
.Parameters([Ô]@codVeiculo[Ô]).Value = cmb_Veiculo.SelectedValue
para
.Parameters([Ô]@codVeiculo[Ô]).Value = cmb_Veiculo.text
Se sim, qual ?
Se não apresenta erro
altera essa linha
.Parameters([Ô]@codVeiculo[Ô]).Value = cmb_Veiculo.SelectedValue
para
.Parameters([Ô]@codVeiculo[Ô]).Value = cmb_Veiculo.text
deixando: .Parameters([Ô]@codVeiculo[Ô]).Value = cmb_Veiculo.SelectedValue
da esse erro: [Ô]Column [ô]cod_Veiculo[ô] cannot be null[Ô]
e mudando para: .Parameters([Ô]@codVeiculo[Ô]).Value = cmb_Veiculo.text
da esse erro: [Ô]Incorrect integer value: [ô]Peugeout 202 2002 (dados q estavam na combobox)[ô] for column [ô]cod_Veiculo[ô] at row 1[Ô]
o erro ocorre na linha: cmd.ExecuteNonQuery()
da esse erro: [Ô]Column [ô]cod_Veiculo[ô] cannot be null[Ô]
e mudando para: .Parameters([Ô]@codVeiculo[Ô]).Value = cmb_Veiculo.text
da esse erro: [Ô]Incorrect integer value: [ô]Peugeout 202 2002 (dados q estavam na combobox)[ô] for column [ô]cod_Veiculo[ô] at row 1[Ô]
o erro ocorre na linha: cmd.ExecuteNonQuery()
Quando estava assim :
Parameters([Ô]@codVeiculo[Ô]).Value = cmb_Veiculo.SelectedValue
Não estava passando valor nenhum por isso a mensagem
[Ô]Column [ô]cod_Veiculo[ô] cannot be null[Ô]
Coluna não aceita nulo
Quando mudaste para
Parameters([Ô]@codVeiculo[Ô]).Value = cmb_Veiculo.text
Passava esse valor
Peugeout 202 2002
como na tabela esse campo está como integer não vai aceitar
Coloca esse campo como varchar
Parameters([Ô]@codVeiculo[Ô]).Value = cmb_Veiculo.SelectedValue
Não estava passando valor nenhum por isso a mensagem
[Ô]Column [ô]cod_Veiculo[ô] cannot be null[Ô]
Coluna não aceita nulo
Quando mudaste para
Parameters([Ô]@codVeiculo[Ô]).Value = cmb_Veiculo.text
Passava esse valor
Peugeout 202 2002
como na tabela esse campo está como integer não vai aceitar
Coloca esse campo como varchar
mas tipow.. o correto seria pegar esses valores marca, modelo e ano e transformar em cod_Veiculo pq ai ele vai aceitar integer
pq o cod_Veiculo é a chave estrangeira e tem q guardar valor integer soh...
nesse codigo anterior do começo do topico, ele fazia isso.. mas eu nao conseguia com ele, colocar mais de uma coluna na combobox, só conseguia colocar a marca:
com oq vc passou deu pra colocar a marca, modelo e o ano...
pq o cod_Veiculo é a chave estrangeira e tem q guardar valor integer soh...
nesse codigo anterior do começo do topico, ele fazia isso.. mas eu nao conseguia com ele, colocar mais de uma coluna na combobox, só conseguia colocar a marca:
com oq vc passou deu pra colocar a marca, modelo e o ano...
With cmb_Veiculo
.ValueMember = [Ô]cod_Veiculo[Ô]
.DataSource = dados.Tables(0)
.DisplayMember = [Ô]marca_Veiculo[Ô]
End With
Da uma olhada nessa imagem
A chave estrangeira tem que ser o ID dessa tabela
Através dele você pegará os dados que precisa,desse modo ele pode ser integer
A chave estrangeira tem que ser o ID dessa tabela
Através dele você pegará os dados que precisa,desse modo ele pode ser integer
Tópico encerrado , respostas não são mais permitidas