COMBOBOX
Pessoal, bom dia!
Tenho uma tabela chamada CLIENTES com o campo ID_CIDADE que corresponde a um código da cidade.
Tenho uma tabela chamada CIDADES com o campo ID_CIDADE que corresponde ao código da cidade e campo NOME_CIDADE que corresponde ao nome da cidade.
No form de cadastro de clientes, quero colocar um COMBOBOX que deve exibir os nomes das cidades, porém ao selecionar o botão gravar, deve gravar o campo ID_CIDADE da tabela CIDADES no campo ID_CIDADE da tabela CLIENTES.
Estou usando SQL Server como banco e no VB.NET DataSources, montando formulários automáticos.
Eu consegui exibir os nomes no combobox, porém como o campo ID_CIDADE é do tipo INT, quando eu mando gravar ele retorna a seguinte mensagem:
CADEIA DE ENTRADA NÃO ESTAVA EM UM FORMATO INCORRETO. Se eu colocar um valor inteiro manualmente no COMBOBOX grava certinho, mas se deixar o nome da cidade selecionado apresenta a mensagem acima.
No ComboBox Tasks, está assim:
Use Data Bound Items = Marcada
Data Source = Binding Source
Display Member = NOME_CIDADE
Value Member = ID_CIDADE
Selected Value = (None)
Agradeço a atenção de todos.
Tenho uma tabela chamada CLIENTES com o campo ID_CIDADE que corresponde a um código da cidade.
Tenho uma tabela chamada CIDADES com o campo ID_CIDADE que corresponde ao código da cidade e campo NOME_CIDADE que corresponde ao nome da cidade.
No form de cadastro de clientes, quero colocar um COMBOBOX que deve exibir os nomes das cidades, porém ao selecionar o botão gravar, deve gravar o campo ID_CIDADE da tabela CIDADES no campo ID_CIDADE da tabela CLIENTES.
Estou usando SQL Server como banco e no VB.NET DataSources, montando formulários automáticos.
Eu consegui exibir os nomes no combobox, porém como o campo ID_CIDADE é do tipo INT, quando eu mando gravar ele retorna a seguinte mensagem:
CADEIA DE ENTRADA NÃO ESTAVA EM UM FORMATO INCORRETO. Se eu colocar um valor inteiro manualmente no COMBOBOX grava certinho, mas se deixar o nome da cidade selecionado apresenta a mensagem acima.
No ComboBox Tasks, está assim:
Use Data Bound Items = Marcada
Data Source = Binding Source
Display Member = NOME_CIDADE
Value Member = ID_CIDADE
Selected Value = (None)
Agradeço a atenção de todos.
Olá boa tarde,
Tente assim
Private Sub frmLogin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
btn_logarUser.Enabled = False
[ô]xcountx = 0
[ô]xlock = False
[ô]username = [Ô][Ô]
[ô]xuserid = xUser_ID
[ô]xUser_ID = 0
cboxUsuario.Text = [Ô][Ô]
cboxUsuario.Focus()
tbSenhaUser.Text = [Ô][Ô]
cboxUsuario.Select()
[ô]If Not checkServer() Then
[ô] xUser_ID = 1
[ô] [ô]Me.Close()
[ô] ConnectionServerForm.ShowDialog()
[ô]End If
Try
[ô] busuario = New BLLUsuario()
[ô]define os valores a exibir na combo e obtem a fonte de dados
[ô]para preencher a combobox
d_Usuario = New DAL_UsuarioSistema()
With cboxUsuario
[ô]obtem os cursos cadastrados
[ô]User_Id, User_Nome, User_Desativado
.ValueMember = [Ô]User_Id[Ô]
.DisplayMember = [Ô]Nome[Ô]
.DataSource = d_Usuario.ListarComboboxUser.Tables(0)
If .DataSource IsNot Nothing Then
.SelectedIndex = 0
End If
End With
Catch ex As Exception
MessageBox.Show(ex.Message, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
Application.ExitThread() : Application.Exit()
Finally
[ô]busuario = Nothing
End Try
End Sub
==============
No Evento cboxUsuario_SelectedIndexChanged do seu combobox
==============
Private Sub cboxUsuario_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboxUsuario.SelectedIndexChanged
cboxUsuario.SelectedValue = _valueUserID
End Sub
==============
No Evento cboxUsuario_SelectionChangeCommitted do seu combobox
==============
Private Sub cboxUsuario_SelectionChangeCommitted(sender As Object, e As EventArgs) Handles cboxUsuario.SelectionChangeCommitted
_valueUserID = cboxUsuario.SelectedValue
Se resolveu seu problema por favor marque como resposta.
Tente assim
Private Sub frmLogin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
btn_logarUser.Enabled = False
[ô]xcountx = 0
[ô]xlock = False
[ô]username = [Ô][Ô]
[ô]xuserid = xUser_ID
[ô]xUser_ID = 0
cboxUsuario.Text = [Ô][Ô]
cboxUsuario.Focus()
tbSenhaUser.Text = [Ô][Ô]
cboxUsuario.Select()
[ô]If Not checkServer() Then
[ô] xUser_ID = 1
[ô] [ô]Me.Close()
[ô] ConnectionServerForm.ShowDialog()
[ô]End If
Try
[ô] busuario = New BLLUsuario()
[ô]define os valores a exibir na combo e obtem a fonte de dados
[ô]para preencher a combobox
d_Usuario = New DAL_UsuarioSistema()
With cboxUsuario
[ô]obtem os cursos cadastrados
[ô]User_Id, User_Nome, User_Desativado
.ValueMember = [Ô]User_Id[Ô]
.DisplayMember = [Ô]Nome[Ô]
.DataSource = d_Usuario.ListarComboboxUser.Tables(0)
If .DataSource IsNot Nothing Then
.SelectedIndex = 0
End If
End With
Catch ex As Exception
MessageBox.Show(ex.Message, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
Application.ExitThread() : Application.Exit()
Finally
[ô]busuario = Nothing
End Try
End Sub
==============
No Evento cboxUsuario_SelectedIndexChanged do seu combobox
==============
Private Sub cboxUsuario_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboxUsuario.SelectedIndexChanged
cboxUsuario.SelectedValue = _valueUserID
End Sub
==============
No Evento cboxUsuario_SelectionChangeCommitted do seu combobox
==============
Private Sub cboxUsuario_SelectionChangeCommitted(sender As Object, e As EventArgs) Handles cboxUsuario.SelectionChangeCommitted
_valueUserID = cboxUsuario.SelectedValue
Se resolveu seu problema por favor marque como resposta.
O campo da tabela ID_Cidade, deve ser do mesmo tipo de dados, tanto na tabela de cliente quanto na tabela de cidades. O resto você está fazendo de maneira correta, apesar de eu sugerir usar OOP.
Tópico encerrado , respostas não são mais permitidas