none
Eu quero selecionar várias tabelas de sql usando a consulta select em vb.net .. RRS feed

  • Pergunta

  •  Private Sub ButtNovo_Click(sender As Object, e As EventArgs) Handles ButtNovo.Click
            resposta = 0
            resposta2 = 0
            resposta = Val(TextMatricula1.Text)
            resposta2 = Val(TextID.Text)
            ligacao.ConnectionString = StrLigacao

            Try
                ligacao.Open()
                Query = "select * From veiculos Where IDMatricula =" & resposta And "select * From Clientes Where IDClientes =" & resposta2
                Comando = New MySqlCommand(Query, ligacao)
                dr = Comando.ExecuteReader
                dr.Read()

                If Not dr.HasRows Then
                    Exit Sub
                End If

                TextMarca.Text = dr("Marca")
                TextModelo.Text = dr("Modelo")
                TextChassi.Text = dr("Chassi")
                TextSeguro.Text = dr("Seguro")
                TextCombus.Text = dr("Combustivel")
                TextCor.Text = dr("Cor")
                TextID.Text = dr("IDCliente")
                TextNome.Text = dr("Nome")
                TextMorada.Text = dr("Morada")
                TextNif.Text = dr("NIF")
                TextCC.Text = dr("CC")
                TextTele.Text = dr("Telemovel")


            Catch ex As MySql.Data.MySqlClient.MySqlException
                MsgBox("Ocorreu um erro. Por Favor Tente novamente")
            Finally
                ligacao.Close()
            End Try
        End Sub

    Este é o meu código eu quero ir buscar o Sql informação de duas tabelas para mostrar os seus dados em certas caixas de testo.

    O erro que me esta a dar é no query.


    • Editado Rhyn0s sexta-feira, 15 de março de 2019 10:26
    sexta-feira, 15 de março de 2019 10:10

Respostas

  • Beleza,

    tenta assim:

    Query = "select v.* , c.*
    from veiculos v
    left join clientes c on c.IdCliente = v.IdCliente
    where v.IdMatricula = " & resposta
    


    Natan

    • Marcado como Resposta Rhyn0s terça-feira, 19 de março de 2019 09:27
    sexta-feira, 15 de março de 2019 19:38

Todas as Respostas

  • Rhyns, tudo bem?

    Você precisa primeiro conhecer bem a sua estrutura do banco de dados e a relação entre as tabelas.

    Se você notar, a maioria das estruturas seguem um padrão como por exemplo:

    Fonte: linkdepesquisa

    Pesquise um pouco sobre joins para poder unir essas tabelas.

    No seu caso, você deveria ter uma chave ligando as tabelas Veículos e Clientes, porém ainda assim não faz muito sentido a estrutura atual.

    select v.* , c.
    from veiculos v
    left join clientes c on c.chave = v.chave
    where v.IdMatricula = resposta
    and   v.IdCliente = resposta2

    Abraço!


    Natan

    sexta-feira, 15 de março de 2019 10:34
  • https://uploaddeimagens.com.br/imagens/capturar-png-243ae23f-4fb9-4105-bbf0-edd069c5a7da

    https://uploaddeimagens.com.br/imagens/capturar_2-png-24963aa4-7ef8-4a38-9446-4203a69a6179

    Resumidamente o que eu quero fazer é quando colocar a matricula do carro o resto dos campos sejam inseridos com os dados do veículos e o seu dono (cliente) 

    Os links são prints do Programa 


    • Editado Rhyn0s sexta-feira, 15 de março de 2019 11:26
    sexta-feira, 15 de março de 2019 11:25
  • Se for isso, você só precisa de um select:

    Query = "select * From veiculos Where IDMatricula = " & resposta


    Natan

    sexta-feira, 15 de março de 2019 12:52
  • https://uploaddeimagens.com.br/imagens/capturar_3-png-5bf3e696-1ee1-49eb-ae49-5e56d1c2cd65

    Se eu colocar só isso os registos do cliente não entram.

    sexta-feira, 15 de março de 2019 15:44
  • Rhynos,

    Faça um diagrama das suas tabelas e poste aqui.




    Natan

    sexta-feira, 15 de março de 2019 16:10
  • Diagrama das tabelas :

    https://uploaddeimagens.com.br/imagens/capturar-png-473f009e-896a-4332-b69a-017509907103/mostrar-codigo

    PS: As ligações não aparecem mas elas existem é um bug eu acho

     

    sexta-feira, 15 de março de 2019 16:17
  • Beleza,

    tenta assim:

    Query = "select v.* , c.*
    from veiculos v
    left join clientes c on c.IdCliente = v.IdCliente
    where v.IdMatricula = " & resposta
    


    Natan

    • Marcado como Resposta Rhyn0s terça-feira, 19 de março de 2019 09:27
    sexta-feira, 15 de março de 2019 19:38
  • Funcionou muito obrigado !!!!

    Posso o contribuir de alguma forma ?

    terça-feira, 19 de março de 2019 09:27