Ir para conteúdo

POWERED BY:

Arquivado

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

[VAZA]

Relacionamento entre DataSets

Recommended Posts

Pessoal,

eu preciso relacionar 3 tabelas que estou jogando em DataSets. Estas tabelas estou carregando de arquivos XML com a função readXML.

 

Eu possuo a seguinte estrutura de tabela e dados:

PECAS

idpeca nome_peca

----------------------------------

1 VIDRO PARA BRISA

2 VIDRO TRASEIRO

3 CAPÔ

4 PORTA FRONTAL DIREITA

5 PORTA FRONTAL ESQUERDA

 

AVARIAS

idavaria nome_avaria

----------------------------------

1 RISCADO

2 AMASSADO

3 CORTADO

4 FURADO

5 FALTANTE

6 TRINCADO

 

PECAS_AVARIAS

idpeca idavaria

----------------------------------

1 1 (VIDRO PARABRISA - RISCADO)

1 6 (VIDRO PARABRISA - TRINCADO)

2 1 (VIDRO TRASEIRO - RISCADO)

2 6 (VIDRO TRASEIRO - TRINCADO)

3 1 (CAPO - RISCADO)

 

 

Caso tenham notado, a tabela pecas_avarias é um relacionamento N:N das tabelas pecas e avarias.

Eu quero dizer que uma Avaria pertence a N peças e que 1 Peça pode possuir N avarias.

Então eu só posso consultar avarias que estiverem relacionadas com uma peça selecionada.

Para relacionar esses DataSets (tabelas), eu implementei o seguinte código:

 

                dsNavios.ReadXml(@"Storage Card\DB\navios.xml");
                dsPecas.ReadXml(@"Storage Card\DB\pecas.xml");
                dsAvarias.ReadXml(@"Storage Card\DB\avarias.xml");
                dsPecasAvarias.ReadXml(@"Storage Card\DB\pecas_avarias.xml");

                dsPecasAvarias.Merge(dsPecas);
                dsPecasAvarias.Merge(dsAvarias);
                dsPecasAvarias.Relations.Add("PecasAvariasXAvarias", dsPecasAvarias.Tables["peca_avaria"].Columns["idavaria"], dsPecasAvarias.Tables["avaria"].Columns["idavaria"], false);
                dsPecasAvarias.Relations.Add("PecasAvariasXPecas", dsPecasAvarias.Tables["peca_avaria"].Columns["idpeca"], dsPecasAvarias.Tables["peca"].Columns["idpeca"], false);   

Eu possuo no meu formulario um comboBox que esta puxando todas as peças e outro combobox que eu gostaria de puxar apenas as Avarias que estao relacionadas a uma peça selecionada. Ou seja, se eu selecionar a peça 1(VIDRO PARABRISA), no Combo de Avarias tem que puxar as Avarias (RISCADO) e (TRINCADO), como na tabela pecas_avarias que criei acima.

Como posso fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá quintelab,

o meu problema não é filtrar, mas sim relacionar essas tabelas como se fosse em uma instrução SQL INNER JOIN. Para que assim os dados possam se cruzar (relacionar-se entre uma tabela e outra).

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.