[VAZA] 0 Denunciar post Postado Outubro 29, 2009 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
quintelab 91 Denunciar post Postado Novembro 2, 2009 Depois de alimentar seu DataSet pode filtrar ele: http://aspnet101.com/aspnet101/tutorials.aspx?id=31 Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
[VAZA] 0 Denunciar post Postado Novembro 5, 2009 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