AJUDA COM SELECT 2 TABELAS 1 LISTVIEW
AJUDA COMO DA UM SELECT EM DUAS TABELAS EXEMPLO
1- TABELA COM OS DADOS DO CADASTRO VISITA
2- TABELA COM OS DADOS DO RETORNO VISITA
PREENCHO UM LISTVIEW COM A PRIMEIRA TABELA COMO FACO PRA ADICIONAR NO RESTANTE DAS COLUNAS OS DADOS DA 2 TABELA?
[ô]AQUI PREENCHO A LISTVIEW COM OS DADOS DA 1 TABELA....
myCMD = New MySql.Data.MySqlClient.MySqlCommand(([Ô]Select * From tb_remocao Where unidadereferencia=[ô][Ô] & Principal.lbllocal.Text & [Ô][ô][Ô]), myCON)
myDRR = myCMD.ExecuteReader()
If myDRR.HasRows = True Then
Do While myDRR.Read()
If myDRR.Item([Ô]Status[Ô]).ToString = [Ô]Aguardando[Ô] Then
Dim dt As DateTime = Convert.ToDateTime(myDRR.Item([Ô]datanascimento[Ô]))
Dim ts As TimeSpan = DateTime.Today.Subtract(dt)
Dim new_item As New _
ListViewItem(myDRR.Item([Ô]id[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]nomepaciente[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]numerocartaosus[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datanascimento[Ô]).ToString)
new_item.SubItems.Add((New DateTime(ts.Ticks).ToString([Ô]yy[Ô]) & [Ô] anos[Ô]))
new_item.SubItems.Add(myDRR.Item([Ô]rua[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]bairro[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]unidadereferencia[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datatrasferencia[Ô]).ToString)
listadeTransferencias.ListView1.Items.Add(new_item)
End if
1- TABELA COM OS DADOS DO CADASTRO VISITA
2- TABELA COM OS DADOS DO RETORNO VISITA
PREENCHO UM LISTVIEW COM A PRIMEIRA TABELA COMO FACO PRA ADICIONAR NO RESTANTE DAS COLUNAS OS DADOS DA 2 TABELA?
[ô]AQUI PREENCHO A LISTVIEW COM OS DADOS DA 1 TABELA....
myCMD = New MySql.Data.MySqlClient.MySqlCommand(([Ô]Select * From tb_remocao Where unidadereferencia=[ô][Ô] & Principal.lbllocal.Text & [Ô][ô][Ô]), myCON)
myDRR = myCMD.ExecuteReader()
If myDRR.HasRows = True Then
Do While myDRR.Read()
If myDRR.Item([Ô]Status[Ô]).ToString = [Ô]Aguardando[Ô] Then
Dim dt As DateTime = Convert.ToDateTime(myDRR.Item([Ô]datanascimento[Ô]))
Dim ts As TimeSpan = DateTime.Today.Subtract(dt)
Dim new_item As New _
ListViewItem(myDRR.Item([Ô]id[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]nomepaciente[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]numerocartaosus[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datanascimento[Ô]).ToString)
new_item.SubItems.Add((New DateTime(ts.Ticks).ToString([Ô]yy[Ô]) & [Ô] anos[Ô]))
new_item.SubItems.Add(myDRR.Item([Ô]rua[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]bairro[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]unidadereferencia[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datatrasferencia[Ô]).ToString)
listadeTransferencias.ListView1.Items.Add(new_item)
End if
Cara pensei de um jeito, nao sei se é da melhor forma mais acho que dá certo dessa maneira
utilizando Array no seu 2 select e concatenando com o valor da variável anterior
http://stackoverflow.com/questions/3355655/how-do-i-put-an-arraylist-in-a-listbox
utilizando Array no seu 2 select e concatenando com o valor da variável anterior
http://stackoverflow.com/questions/3355655/how-do-i-put-an-arraylist-in-a-listbox
Você pode usar um LEFT JOIN e buscar os dados no mesmo Select.
Com isso, basta verificar se esses dados não são nulos e atribuir a coluna correspondente.
Poste a estrutura das tabelas, assim fica mais facil de ajudar.
Com isso, basta verificar se esses dados não são nulos e atribuir a coluna correspondente.
Poste a estrutura das tabelas, assim fica mais facil de ajudar.
usando Left Join como o FCouto disse funciona também ai concatena as string e da certo..
FFCOUTO Nao manjo muito de banco, quem fazia isso pra mim era outra pessoa agora estou fazendo tudo sozinho entao estou lendo sobre ainda....mais minha tabela esta desta forma sei que tem muito o que melhorar maissssss....kkkk
Na segunda tabela salvo o codvisita com os dados daquele paciente...que preenchido apos abertura da ficha do paciente por outro setor...
Tente assim:
No campo codigo após o ON coloque os campos que se coincidem nas duas tables.
SELECT * FROM tb_remocao LEFT JOIN tb_retornovisita ON tb_remocao.codigo=tb_retornovisita.codigo WHERE tb_remocao.unidadereferencia=[ô][Ô] & Principal.lbllocal.Text & [Ô][ô][Ô]
No campo codigo após o ON coloque os campos que se coincidem nas duas tables.
O select ficaria assim:
Depois basta preencher as colunas com os campos correspondentes.
SELECT t1.*, t2.* FROM pacientes AS t1 INNER JOIN visitas AS t2 ON t1.id = t2.codigo;
Depois basta preencher as colunas com os campos correspondentes.
new_item.SubItems.Add(myDRR.Item(campo).ToString)
FFCOUTO
O seu Nem erro ele da...
Mestre fiz da forma que voce me falou mais, nao obtive resultado recebi a seguinte mensagem....
[txt-color=#e80000]invalid attempt to access a field before calling read()[/txt-color]
OBS IMPORTANTE COMO NUNCA TINHA USADO ISTO ENTAO NAO SEI SE ESTOU FAZENDO DA FORMA CORRETA SEGUE AQUI A SUB INTEIRA....
Public Sub Listar()
Conectar()
listadeTransferencias.ListView1.Items.Clear()
listadeTransferencias.ListView2.Items.Clear()
listadeTransferencias.ListView3.Items.Clear()
myCMD = New MySql.Data.MySqlClient.MySqlCommand([Ô]Select * from tb_remocao order by id[Ô], myCON)
myDRR = myCMD.ExecuteReader()
If myDRR.HasRows = True Then
Do While myDRR.Read()
[txt-color=#e80000] If myDRR.Item([Ô]Status[Ô]).ToString = [Ô]Aguardando[Ô] [/txt-color]Then
Dim dt As DateTime = Convert.ToDateTime(myDRR.Item([Ô]datanascimento[Ô]))
Dim ts As TimeSpan = DateTime.Today.Subtract(dt)
Dim new_item As New _
ListViewItem(myDRR.Item([Ô]id[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]nomepaciente[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]numerocartaosus[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datanascimento[Ô]).ToString)
new_item.SubItems.Add((New DateTime(ts.Ticks).ToString([Ô]yy[Ô]) & [Ô] anos[Ô]))
new_item.SubItems.Add(myDRR.Item([Ô]rua[Ô]).ToString & [Ô],Nº [Ô] & (myDRR.Item([Ô]numero[Ô]).ToString))
new_item.SubItems.Add(myDRR.Item([Ô]bairro[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]unidadereferencia[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datatrasferencia[Ô]).ToString)
listadeTransferencias.ListView1.Items.Add(new_item)
[txt-color=#e80000] ElseIf myDRR.Item([Ô]Status[Ô]).ToString = [Ô]Visita[Ô] [/txt-color]Then
Dim dt As DateTime = Convert.ToDateTime(myDRR.Item([Ô]datanascimento[Ô]))
Dim ts As TimeSpan = DateTime.Today.Subtract(dt)
Dim new_item As New _
ListViewItem(myDRR.Item([Ô]id[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]nomepaciente[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]numerocartaosus[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datanascimento[Ô]).ToString)
new_item.SubItems.Add((New DateTime(ts.Ticks).ToString([Ô]yy[Ô]) & [Ô] anos[Ô]))
new_item.SubItems.Add(myDRR.Item([Ô]rua[Ô]).ToString & [Ô],Nº [Ô] & (myDRR.Item([Ô]numero[Ô]).ToString))
new_item.SubItems.Add(myDRR.Item([Ô]bairro[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]unidadereferencia[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datatrasferencia[Ô]).ToString)
listadeTransferencias.ListView2.Items.Add(new_item)
[txt-color=#e80000] ElseIf myDRR.Item([Ô]Status[Ô]).ToString = [Ô]Finalizado[Ô][/txt-color] Then
Dim dt As DateTime = Convert.ToDateTime(myDRR.Item([Ô]datanascimento[Ô]))
Dim ts As TimeSpan = DateTime.Today.Subtract(dt)
Dim new_item As New ListViewItem(myDRR.Item([Ô]id[Ô]).ToString)
Conectar()
[txt-color=#e80000] myCMD = New MySql.Data.MySqlClient.MySqlCommand([Ô]SELECT * FROM tb_remocao LEFT JOIN tb_visita ON tb_remocao.codvisita=tb_visita.codigo WHERE tb_remocao.unidadereferencia=[ô][Ô] & Principal.lbllocal.Text & [Ô][ô][Ô], myCON)[/txt-color]
[txt-color=#e80000] myDRR = myCMD.ExecuteReader()[/txt-color] SEI QUE O ERRO ESTA NESTA LINHA POIS PRECISA SER ExecuteScalar
new_item.SubItems.Add(myDRR.Item([Ô]nomepaciente[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]numerocartaosus[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datanascimento[Ô]).ToString)
new_item.SubItems.Add((New DateTime(ts.Ticks).ToString([Ô]yy[Ô]) & [Ô] anos[Ô]))
new_item.SubItems.Add(myDRR.Item([Ô]rua[Ô]).ToString & [Ô],Nº [Ô] & (myDRR.Item([Ô]numero[Ô]).ToString))
new_item.SubItems.Add(myDRR.Item([Ô]bairro[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]unidadereferencia[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datatrasferencia[Ô]).ToString)
[txt-color=#e80000] new_item.SubItems.Add(myDRR.Item([Ô]1internacao[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]hipotesediagnostica[Ô]).ToString)[/txt-color]
listadeTransferencias.ListView3.Items.Add(new_item)
End If
listadeTransferencias.Label21.Text = listadeTransferencias.ListView1.Items.Count
listadeTransferencias.Label22.Text = listadeTransferencias.ListView2.Items.Count
listadeTransferencias.Label23.Text = listadeTransferencias.ListView3.Items.Count
Loop
End If
End Sub
Os dois ultimos items adicionado no status finalizado e da tabela_visita preechida apos a visita...
O seu Nem erro ele da...
Mestre fiz da forma que voce me falou mais, nao obtive resultado recebi a seguinte mensagem....
[txt-color=#e80000]invalid attempt to access a field before calling read()[/txt-color]
OBS IMPORTANTE COMO NUNCA TINHA USADO ISTO ENTAO NAO SEI SE ESTOU FAZENDO DA FORMA CORRETA SEGUE AQUI A SUB INTEIRA....
Public Sub Listar()
Conectar()
listadeTransferencias.ListView1.Items.Clear()
listadeTransferencias.ListView2.Items.Clear()
listadeTransferencias.ListView3.Items.Clear()
myCMD = New MySql.Data.MySqlClient.MySqlCommand([Ô]Select * from tb_remocao order by id[Ô], myCON)
myDRR = myCMD.ExecuteReader()
If myDRR.HasRows = True Then
Do While myDRR.Read()
[txt-color=#e80000] If myDRR.Item([Ô]Status[Ô]).ToString = [Ô]Aguardando[Ô] [/txt-color]Then
Dim dt As DateTime = Convert.ToDateTime(myDRR.Item([Ô]datanascimento[Ô]))
Dim ts As TimeSpan = DateTime.Today.Subtract(dt)
Dim new_item As New _
ListViewItem(myDRR.Item([Ô]id[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]nomepaciente[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]numerocartaosus[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datanascimento[Ô]).ToString)
new_item.SubItems.Add((New DateTime(ts.Ticks).ToString([Ô]yy[Ô]) & [Ô] anos[Ô]))
new_item.SubItems.Add(myDRR.Item([Ô]rua[Ô]).ToString & [Ô],Nº [Ô] & (myDRR.Item([Ô]numero[Ô]).ToString))
new_item.SubItems.Add(myDRR.Item([Ô]bairro[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]unidadereferencia[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datatrasferencia[Ô]).ToString)
listadeTransferencias.ListView1.Items.Add(new_item)
[txt-color=#e80000] ElseIf myDRR.Item([Ô]Status[Ô]).ToString = [Ô]Visita[Ô] [/txt-color]Then
Dim dt As DateTime = Convert.ToDateTime(myDRR.Item([Ô]datanascimento[Ô]))
Dim ts As TimeSpan = DateTime.Today.Subtract(dt)
Dim new_item As New _
ListViewItem(myDRR.Item([Ô]id[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]nomepaciente[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]numerocartaosus[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datanascimento[Ô]).ToString)
new_item.SubItems.Add((New DateTime(ts.Ticks).ToString([Ô]yy[Ô]) & [Ô] anos[Ô]))
new_item.SubItems.Add(myDRR.Item([Ô]rua[Ô]).ToString & [Ô],Nº [Ô] & (myDRR.Item([Ô]numero[Ô]).ToString))
new_item.SubItems.Add(myDRR.Item([Ô]bairro[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]unidadereferencia[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datatrasferencia[Ô]).ToString)
listadeTransferencias.ListView2.Items.Add(new_item)
[txt-color=#e80000] ElseIf myDRR.Item([Ô]Status[Ô]).ToString = [Ô]Finalizado[Ô][/txt-color] Then
Dim dt As DateTime = Convert.ToDateTime(myDRR.Item([Ô]datanascimento[Ô]))
Dim ts As TimeSpan = DateTime.Today.Subtract(dt)
Dim new_item As New ListViewItem(myDRR.Item([Ô]id[Ô]).ToString)
Conectar()
[txt-color=#e80000] myCMD = New MySql.Data.MySqlClient.MySqlCommand([Ô]SELECT * FROM tb_remocao LEFT JOIN tb_visita ON tb_remocao.codvisita=tb_visita.codigo WHERE tb_remocao.unidadereferencia=[ô][Ô] & Principal.lbllocal.Text & [Ô][ô][Ô], myCON)[/txt-color]
[txt-color=#e80000] myDRR = myCMD.ExecuteReader()[/txt-color] SEI QUE O ERRO ESTA NESTA LINHA POIS PRECISA SER ExecuteScalar
new_item.SubItems.Add(myDRR.Item([Ô]nomepaciente[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]numerocartaosus[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datanascimento[Ô]).ToString)
new_item.SubItems.Add((New DateTime(ts.Ticks).ToString([Ô]yy[Ô]) & [Ô] anos[Ô]))
new_item.SubItems.Add(myDRR.Item([Ô]rua[Ô]).ToString & [Ô],Nº [Ô] & (myDRR.Item([Ô]numero[Ô]).ToString))
new_item.SubItems.Add(myDRR.Item([Ô]bairro[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]unidadereferencia[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]datatrasferencia[Ô]).ToString)
[txt-color=#e80000] new_item.SubItems.Add(myDRR.Item([Ô]1internacao[Ô]).ToString)
new_item.SubItems.Add(myDRR.Item([Ô]hipotesediagnostica[Ô]).ToString)[/txt-color]
listadeTransferencias.ListView3.Items.Add(new_item)
End If
listadeTransferencias.Label21.Text = listadeTransferencias.ListView1.Items.Count
listadeTransferencias.Label22.Text = listadeTransferencias.ListView2.Items.Count
listadeTransferencias.Label23.Text = listadeTransferencias.ListView3.Items.Count
Loop
End If
End Sub
Os dois ultimos items adicionado no status finalizado e da tabela_visita preechida apos a visita...
KURTGU, põe no SELECT lá encima e ve se funciona...
aonde tá la encima
você ja tá dando o select la encima na tb_remocao não precisa fazer isso pela 2 vez, coloca e tira o segundo select:
aonde tá la encima
myCMD = New MySql.Data.MySqlClient.MySqlCommand([Ô]Select * from tb_remocao order by id[Ô], myCON)
você ja tá dando o select la encima na tb_remocao não precisa fazer isso pela 2 vez, coloca e tira o segundo select:
Public Sub Listar()
Conectar()
listadeTransferencias.ListView1.Items.Clear()
listadeTransferencias.ListView2.Items.Clear()
listadeTransferencias.ListView3.Items.Clear()
myCMD = New MySql.Data.MySqlClient.MySqlCommand([Ô]SELECT * FROM tb_remocao LEFT JOIN tb_visita ON tb_remocao.codvisita=tb_visita.codigo WHERE tb_remocao.unidadereferencia=[ô][Ô] & Principal.lbllocal.Text & [Ô][ô] ORDER BY tb_remocao.id[Ô], myCON)
Mestre valeu cara Deu certo so tive que tirar a parte do Where.....Vlw mesmo....
Tópico encerrado , respostas não são mais permitidas