zephirus Posted June 6, 2009 at 11:25 AM Report #270341 Posted June 6, 2009 at 11:25 AM Olá, Tenho duas tabelas de SQL, ambas com dados quase idênticos, tendo em comum o 'id' e o 'label' Table1: Table2: id label type id label type 1 aaa xpto 1 aaa xpto 2 bbb xpto 3 ccc flop No meu programa tenho duas listviews, listview1 e listview 2. Eu quero preencher a listview1 com os dados da Table2 e depois preencher a listview2 com os dados da Table1 MAS sem colocar os que já estão na listview1, ou seja, quero ficar com isto: listview1: listview2: id label id label 2 bbb 1 aaa 3 ccc Qual o comando SQL que devo usar? Este comando que uso para preencher a listview1 funciona mas eu estou a 'forçar' o item que quero evitar (o 'aaa'): SQLcommand.CommandText = "SELECT id, label FROM Table1 WHERE Type = 'xpto' AND PartNumber <> 'aaa'" Eu quero é uma coisa genérica, do género que seja percorrida toda a tabela para ver se o item já existe. Estou com a cabeça feita num oito de tanto tentar e não conseguir fazer isto. Alguém sabe como? Obrigado.
ribeiro55 Posted June 6, 2009 at 11:34 AM Report #270346 Posted June 6, 2009 at 11:34 AM do género que seja percorrida toda a tabela para ver se o item já existe Eis a tua resposta. Eu puxava a tabela toda para a aplicação e depois, através de um ciclo, ia passar a listview toda à caça do item para adicionar a linha actual da tabela puxada caso não fosse encontrado. For Each LVI As ListViewItem In ListView1.Items 'lógica de comparação Next Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips"
zephirus Posted June 6, 2009 at 11:38 AM Author Report #270348 Posted June 6, 2009 at 11:38 AM Eis a tua resposta. Eu puxava a tabela toda para a aplicação e depois, através de um ciclo, ia passar a listview toda à caça do item para adicionar a linha actual da tabela puxada caso não fosse encontrado. For Each LVI As ListViewItem In ListView1.Items 'lógica de comparação Next Pois, só se for assim. Penso que deve haver algum comando SQL que faça isso mas enquanto não sei, vou fazer como sugeres.
ribeiro55 Posted June 6, 2009 at 11:41 AM Report #270349 Posted June 6, 2009 at 11:41 AM AH, espera. há duas tabelas. Não tinha percebido. Fiquei com a impressão de ser só uma. Sim, penso que seja possível. Não tenho nada onde possa testar neste momento e como não uso isso com muita frequência também não te posso adiantar nada. Há-de passar por aqui alguém que saiba isso de cor concerteza 😛 Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips"
José Lopes Posted June 6, 2009 at 02:12 PM Report #270389 Posted June 6, 2009 at 02:12 PM conheces o select minus???... existe para oracle...nao sei se para SQL server ou outros existe,... mas é disso que precisas Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!
zephirus Posted June 6, 2009 at 03:09 PM Author Report #270399 Posted June 6, 2009 at 03:09 PM conheces o select minus???... existe para oracle...nao sei se para SQL server ou outros existe,... mas é disso que precisas Eu acho que o meu problema não pode ser resolvido por comandos SQL. Isto porque o que eu quero mesmo é não repetir items nas duas listboxs. Implementei como o ribeiro55 disse e está a funcionar bem.
José Lopes Posted June 6, 2009 at 04:18 PM Report #270409 Posted June 6, 2009 at 04:18 PM Eu acho que o meu problema não pode ser resolvido por comandos SQL. Isto porque o que eu quero mesmo é não repetir items nas duas listboxs. Implementei como o ribeiro55 disse e está a funcionar bem. Desculpa mas estás errado.. isso em oracle faz-se como te disse. Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!
zephirus Posted June 6, 2009 at 07:46 PM Author Report #270438 Posted June 6, 2009 at 07:46 PM Desculpa mas estás errado.. isso em oracle faz-se como te disse. Sim, mas não é o que eu quero. Eu preciso mesmo de jogar com as listboxs e não com as tabelas.
eduardo carvalho Posted June 10, 2009 at 02:24 AM Report #271214 Posted June 10, 2009 at 02:24 AM Olá, Tenho duas tabelas de SQL, ambas com dados quase idênticos, tendo em comum o 'id' e o 'label' Table1: Table2: id label type id label type 1 aaa xpto 1 aaa xpto 2 bbb xpto 3 ccc flop No meu programa tenho duas listviews, listview1 e listview 2. Eu quero preencher a listview1 com os dados da Table2 e depois preencher a listview2 com os dados da Table1 MAS sem colocar os que já estão na listview1, ou seja, quero ficar com isto: listview1: listview2: id label id label 2 bbb 1 aaa 3 ccc Qual o comando SQL que devo usar? Este comando que uso para preencher a listview1 funciona mas eu estou a 'forçar' o item que quero evitar (o 'aaa'): SQLcommand.CommandText = "SELECT id, label FROM Table1 WHERE Type = 'xpto' AND PartNumber <> 'aaa'" Eu quero é uma coisa genérica, do género que seja percorrida toda a tabela para ver se o item já existe. Estou com a cabeça feita num oito de tanto tentar e não conseguir fazer isto. Alguém sabe como? Obrigado. usas o comando distinct (para devolver so os valores diferentes) e o join para unires as duas tabelas Tens aqui exemplos http://www.1keydata.com/sql/sqldistinct.html http://www.1keydata.com/sql/sqljoins.html
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