Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

petelson pascoal

Mostrar dados de duas tabelas em uma só datagridview

Mensagens Recomendadas

petelson pascoal

amigos eu tenho duas tabelas, e estou a tentar mostrar os dados armazenados nela atraves de um unica datagridview

o codigo é esse:

PreencheDataSetDeDataReader(ByVal ds As DataSet, ByVal table As String, ByVal dr As IDataReader)
' Cria um xxxDataAdapter do mesmo tipo de um DataReader
Dim tipoDataReader As Type = CObj(dr).GetType
Dim nomeTipo As String = tipoDataReader.FullName.Replace("DataReader", "DataAdapter")
Dim tipoDataAdapter As Type = tipoDataReader.Assembly.GetType(nomeTipo)
Dim da As Object = Activator.CreateInstance(tipoDataAdapter)
' invoca o método protegido Fill que toma um objeto IDataReader
Dim args() As Object = {ds, table, dr, 0, 999999}
tipoDataAdapter.InvokeMember("Fill", BindingFlags.InvokeMethod Or BindingFlags.NonPublic Or BindingFlags.Instance, Nothing, da, args)
' fecha o DataReader
dr.Close()
End Sub


Private Sub Bt_pesquisar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt_pesquisar.Click

Dim cm As New MySqlCommand("SELECT * FROM produto", conexao)
Dim dr As MySqlDataReader = cm.ExecuteReader
Dim ds As New DataSet
PreencheDataSetDeDataReader(ds, "produto", dr)
DataGridView1.DataSource = ds.Tables("produto")
End Sub

já usei um select para pegar os dados das duas tabelas mas nao deu certo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
petelson pascoal

ola,

como montaste essa query?

como queres que seja o resultado dessa query?

as duas tabelas são iguais?

que campos tem uma tabela e outra?

pesquisa por join ou union, tens aqui um bom link que te diz a diferença entre eles

http://stackoverflow.com/questions/905379/what-is-the-difference-between-join-and-union

Já fiz um join e uma union.

o objectivo é de mostrar os dados da tabela produto e da tabela produto fornecedor em uma só datagridview

na tabela produto_fornecedor tenho o campos como: codigo_produto int, codigo_forn int (essas sao as primary keys) e os campos data e quantidade.

podes montar uma query de acordo a tua percepção do problema?. Paz e amor valeu mano

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Tens aí código desnecessário. Dá uma vista de olhos neste artigo http://wiki.portugal-a-programar.pt/dev_net:vb.net:access, converter para MySQL é fácil. E olhando para o artigo, segue um exemplo simples..só tens de adaptar a MySQL.

Dim ConnectionString As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & "BD.mdb")
Dim query As String = "SELECT cliente_.nome, encomendas_.ID
					FROM Clientes AS cliente_
					JOIN Encomendas AS encomendas_ ON encomendas_.clienteID = cliente_.ID"


Dim DataAdapter As New OleDbDataAdapter(query, ConnectionString)
Dim MyData As New DataSet
DataAdapter.Fill(MyData, "Clientes")

Me.DataGridView1.DataSource = MyData.Tables("Clientes")

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
petelson pascoal

Tens aí código desnecessário. Dá uma vista de olhos neste artigo http://wiki.portugal-a-programar.pt/dev_net:vb.net:access, converter para MySQL é fácil. E olhando para o artigo, segue um exemplo simples..só tens de adaptar a MySQL.

Dim ConnectionString As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & "BD.mdb")
Dim query As String = "SELECT cliente_.nome, encomendas_.ID
					FROM Clientes AS cliente_
					JOIN Encomendas AS encomendas_ ON encomendas_.clienteID = cliente_.ID"


Dim DataAdapter As New OleDbDataAdapter(query, ConnectionString)
Dim MyData As New DataSet
DataAdapter.Fill(MyData, "Clientes")

Me.DataGridView1.DataSource = MyData.Tables("Clientes")

Sim mano valeu pela ajuda

tentei fazer com duas strings de pesquisa uma por nome e outra por codigo, mas nao esta a dar certo só é possivel uma. porque mano?

Valeu pela atenção. Paz e amor

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Epa, oh rapaz, antes de paz e amor vêm o código. Se não mostrares código nem mostrares os erros que te dá, não é possível benzer-te.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
petelson pascoal
 Dim query As String = ("select produto.codigo_prod,produto.nome_prod, produto.preco, produto.descricao, fornecedor.nome_forn, produto.estoque, produto_fornecedor.Data from fornecedor, produto, produto_fornecedor where fornecedor.codigo_forn = produto_fornecedor.Codigo_Forn and produto_fornecedor.Codigo_Prod = produto.codigo_prod and produto.codigo_prod ='" & Me.txt_parametro.Text & "' ")
Dim DataAdapter As New MySqlDataAdapter(query, conexao)
Dim MyData As New DataSet
DataAdapter.Fill(MyData, "Produto")
If Cbo_categoria_de_pesquisa.SelectedItem = "Nome" Then
Me.DataGridView1.DataSource = MyData.Tables("Produto")
End If

com isso eu pretendo mostrar os dados apenas quando comprir a codiçao a cima, mas ele nao mostra............... mas fora do if ele mostra.

Obrigado pela atençao. Paz e amor

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jota_wa

 Dim query As String = ("select produto.codigo_prod,produto.nome_prod, produto.preco, produto.descricao, fornecedor.nome_forn, produto.estoque, produto_fornecedor.Data from fornecedor, produto, produto_fornecedor where fornecedor.codigo_forn = produto_fornecedor.Codigo_Forn and produto_fornecedor.Codigo_Prod = produto.codigo_prod and produto.codigo_prod ='" & Me.txt_parametro.Text & "' ")
Dim DataAdapter As New MySqlDataAdapter(query, conexao)
Dim MyData As New DataSet
DataAdapter.Fill(MyData, "Produto")
If Cbo_categoria_de_pesquisa.SelectedItem = "Nome" Then
Me.DataGridView1.DataSource = MyData.Tables("Produto")
End If

com isso eu pretendo mostrar os dados apenas quando comprir a codiçao a cima, mas ele nao mostra............... mas fora do if ele mostra.

Obrigado pela atençao. Paz e amor

Boas

Que valor tem a propriedade "SelectedItem" da Combobox "Cbo_categoria_de_pesquisa"?

Tens de ter em atenção às propriedades que usas nas combos,porque dependendo de como as preenches os valores do "SelectedItem","SelectedValue" e "SelectedText" são diferentes.

Cumps

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.