Jump to content
petelson pascoal

Mostrar dados de duas tabelas em uma só datagridview

Recommended Posts

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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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")

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.