Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

André Mailho

gridView repete valores varias vezes

Recommended Posts

Pessoal, tenho uma GridView no site(asp.net) aonde ele esta conectado ao banco de dados (oracle), o problema é que quando eu faço o cadastro de um cliente, o gridview repete este mesmo cliente varias vezes! eu nao sei por que ele esta fazendo isso! se puderem me ajudr ficarei grato. sou iniciante, se puderem me explicar de forma simples sera mais facil de enender. VLW

Compartilhar este post


Link para o post
Compartilhar em outros sites

é eu ja tinha tentando fazer com data list, mas eu o mesmo erro! ele ainda repete os campos. quero descobrir aonde esta o erro no codigo!

no caso estou usando a seguinte string select:

 

SELECT CADCLIENTE.NOME, CADCLIENTE.TEL, CADCONT.NOMECON

FROM CADCONT, CADCLIENTE

 

aonde CADCLIENTE é uma tabela e CADCONT é outra.

 

eu percebi que se eu insiro apenas um cliente, ele aparece apenas 1 normalmente, mas se eu insiro um segundo, ele duplica os dois clienes na gridview, se insiro 3 ele triplica os 3 e assim por diante.

Compartilhar este post


Link para o post
Compartilhar em outros sites

VocÊ tem que colocar no sql o relacionamento entre CADCONT, CADCLIENTE senão o oracle vai permutar todos os cadastros de CADCONT com todos os registros de CADCLIENTE.

 

O seja se houverem 10 registros em cada tabela o oracle retornará 100 registros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

INNER JOIN? eu tentei assim:

 

SELECT CADCLIENTE.NOME, CADCLIENTE.TEL, CADCONT.NOMECON

FROM CADCLIENTE, CADCONT

INNER JOIN CADCONT ON CADCLIENTE

 

mas apareceu a seguinte mesagem quando testei a query:

invalid relational operator

 

como construo a string select com o inner join?

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT CADCLIENTE.NOME, CADCLIENTE.TEL, CADCONT.NOMECON

FROM CADCONT, CADCLIENTE

WHERE CADCONT.COD = CADCLIENTE.COD

 

 

Supondo que COD seja a chave das tabelas

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao, as chaves sao IDCLIENTE e IDCONT

 

entao ficaria assim:

 

SELECT CADCLIENTE.NOME, CADCLIENTE.TEL, CADCONT.NOMECON

FROM CADCONT, CADCLIENTE

WHERE CADCONT.IDCONT = CADCLIENTE.IDCLIENTE

 

????????????

 

o problema é que quando eu mando testar a query ela nao mostra mais nenhum registro do bando! eu nao tenho que fazer algum tipo de referencia às IDs?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você sabe como as tabelas se relacionam ?

 

Publique a descrição das tabelas na dúvida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao sei nao! mas eu acho que ja descobri o erro! a id IDCLIENTE da tabela CADCLIENTE deveria gerar um numero automaticamente para cada cadastro, e entao eu aplicaria esse mesmo numero a IDCLIENTE da tabela CADCONT. mas o IDCLIENTE nao esta gerando esse numero.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os campos da gridView! tipo, se eu faço o cadastro de um cliente, ele mostra um normal, se eu faço o cadastro de dois clientes ele repete os dois 2 vezes, se faço um terceiro repete os 3 tres vezes. Tipo, nesta gridView eu estou chamando campos de duas tabelas. QUando eu chamo só uma isso nao acontece.

 

O que eu preciso mesmo, é descobrir uma forma de relacionar a id de uma tabela com a outra.

assim:

 

TABELA CADCLIENTE

campo IDCLIENTE

campo NOME

campo TELEFONE

campo IDCONTATO

 

TABELA CADCONTATO

campo IDCLIENTE

campo NOMECONTATO

campo IDCONTATO

 

 

entao quando o gridView mostrar o cadastro de um cliente(cadcliente) ele tambem deve mostrar o contato desse cliente(cadcontato). o que acontece, é que, como as duas tabelas nao estao relacionadas, quando ele puxa o cadastro do cliente, ele puxa o cadastro de qualquer contato, e nao o contato daquele cliente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

a query existe! o que eu tenho que fazer, é que, no momento em que o cadastro do cliente for preenchido ele relacione a id do cliente com a id do contato desse cliente! assim, quando a gridview carregar o cliente, ele puxe contato daquele cliente! pela id!

 

o campo IDCLIENTE é o campo em comum! o IDCLIENTE da tabela CADCLIENTE tem que ser gravado no IDCLIENTE da tabela CADCONT.

 

tipo, a gridView ja ta lendo corretamente conforme o id. usei esse codigo:

 

OracleDataAdapter da = new OracleDataAdapter("SELECT cadcliente.nome, cadcliente.tel, cadcliente.dataincl, cadcont.nomecon FROM cadcliente INNER JOIN cadcont ON cadcliente.idcliente = cadcont.idcliente", con);

 

mas para isso eu tenho que inserir o mesmo id do cadcliente manualmente no id do cadcont. A unica coisa que falta é na hora em que o cadastro for feito ele inserir uma id na outra automaticamente.

 

tendeu? ^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.