vascoc Posted June 4, 2012 at 01:57 PM Report #460270 Posted June 4, 2012 at 01:57 PM (edited) Boas, tenho uma groupbox que está ligada a base de dados tal como as textboxs, mas gostava de ao escolher um valor na combobox, as minhas textboxs iriam preencher automaticamente com os dados do cliente que tenho na minha base de dados. Clientes table http://img225.imageshack.us/img225/7752/sdsdsdqi.png Aparece o primeiro cliente mas eu seleccionei o terceiro.. http://img29.imageshack.us/img29/7957/sdsdsdws.png Código do load e combobox. ' connection's on load to fill the combobox Private Sub Nova_reserva_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Combobox Companhia conn = New SqlCeConnection(My.Settings.HOTEL_DBConnectionString) cmd = New SqlCeCommand("Select * from Clientes Order by Cod_Clientes", conn) da = New SqlCeDataAdapter(cmd) ds = New DataSet() conn.Open() Dim dr As SqlCeDataReader = cmd.ExecuteReader combclientes_existente.Items.Clear() While dr.Read combclientes_existente.Items.Add(dr.Item(0) & " | " & dr.Item(1)) End While Try conn = New SqlCeConnection(My.Settings.HOTEL_DBConnectionString) cmd = New SqlCeCommand("Select * from Clientes ORDER BY Nome_Clientes", conn) da = New SqlCeDataAdapter(cmd) ds = New DataSet() With conn If .State = ConnectionState.Open Then .Close() End If .Open() End With da.Fill(ds, "consulta") Catch ex As Exception MessageBox.Show(ex.Message, "informação do sistema", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try conn.Close() Codigo_Cliente() end sub Private Sub combclientes_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles combclientes_existente.SelectedIndexChanged Try conn = New SqlCeConnection(My.Settings.HOTEL_DBConnectionString) cmd = New SqlCeCommand("Select * From Clientes ", conn) 'WHERE Cod_Clientes = '" & combclientes_existente.Text & "'" da = New SqlCeDataAdapter(cmd) ds = New DataSet() With conn If .State = ConnectionState.Open Then .Close() End If .Open() End With da.Fill(ds, "consulta") Catch ex As Exception MessageBox.Show(ex.Message, "informação do sistema", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try 'Devo ter error aqui Nome_ClientesTextBox_existente.Text = ds.Tables("consulta").Rows(0).Item(1) Num_Contribuinte_existente.Text = ds.Tables("consulta").Rows(0).Item(2) ContatoTextBox_existente.Text = ds.Tables("consulta").Rows(0).Item(3) End Sub Alguém me pode ajudar ? Edited June 4, 2012 at 02:00 PM by Caça GeSHi
Caça Posted June 4, 2012 at 02:01 PM Report #460273 Posted June 4, 2012 at 02:01 PM Esta-te a acontecer isso porque estás sempre a pegar no primeiro item que encontras, altera a tua query para Select * From Clientes WHERE Codigo = CodigoSelecionado Pedro Martins Não respondo a duvidas por PM
vascoc Posted June 4, 2012 at 02:09 PM Author Report #460277 Posted June 4, 2012 at 02:09 PM (edited) Obrigado pela resposta 🙂 Coloco a minha query desta maneira então ? SELECT * FROM Clientes WHERE Cod_Clientes = '" & combclientes_existente.Text & "'", conn) Assim dá-me erro :s Acho que não entendi bem, desculpa. Edited June 4, 2012 at 02:13 PM by vascoc
Caça Posted June 4, 2012 at 02:12 PM Report #460279 Posted June 4, 2012 at 02:12 PM (edited) Não, com isso a tua query final seria SELECT * FROM Clientes WHERE WHERE Cod_Clientes = '3 | aaaaaa' o que não é correcto, tens de pegar apenas do 3 Edited June 4, 2012 at 02:12 PM by Caça Pedro Martins Não respondo a duvidas por PM
vascoc Posted June 4, 2012 at 02:16 PM Author Report #460280 Posted June 4, 2012 at 02:16 PM Pois, mas eu quero que seja com qualquer linha da combobox (cliente)... E só o número do cliente, mas sinceramente não estou a enteder :s Desculpa..
Caça Posted June 4, 2012 at 02:20 PM Report #460282 Posted June 4, 2012 at 02:20 PM Estas a preencher a tua combobx com Código | Descrição, certo? Agora a unica coisa que tens de fazer é separar o 3 do aaaaa, neste caso, para isso podes utiliza o Split Pedro Martins Não respondo a duvidas por PM
vascoc Posted June 4, 2012 at 02:22 PM Author Report #460283 Posted June 4, 2012 at 02:22 PM Podes explicar-me como fazer isso ? Nunca me explicaram, nem nunca utilizei esse método nos trabalhos escolares.
Caça Posted June 4, 2012 at 02:26 PM Report #460286 Posted June 4, 2012 at 02:26 PM Mais ou menos assim Dim S As String = combclientes_existente.Text Dim Split() As String = S.Split(Convert.ToChar("|")) cmd = New SqlCeCommand("Select * From Clientes WHERE Cod_Clientes = " & Split(0), conn) Pedro Martins Não respondo a duvidas por PM
vascoc Posted June 4, 2012 at 02:37 PM Author Report #460292 Posted June 4, 2012 at 02:37 PM (edited) Muito obrigado, já entendi isso do split e está a funcionar 🙂 Obrigado, já vi que vale a pena usar este fórum! Como marco o tópico como resolvido ? Edited June 4, 2012 at 02:41 PM by vascoc
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now