COMBOBOX

PITERGALDIANO 12/02/2013 01:20:48
#419150
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.

TSANALISTA 10/06/2013 16:50:45
#424557
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.
KERPLUNK 10/06/2013 17:20:10
#424562
Resposta escolhida
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