none
Povoar uma tabela 3 trazendo IDs das tabelas 1 e 2 RRS feed

  • Pergunta

  • Pessoal, tenho uma estrutura com 3 tabelas:

    1-usuario

    2-departamento

    3-permissao_usuario_departamento (id_usuario, id_departamento, permissao)

    De que forma posso "povoar" a tabela 3 de acordo com as outras duas tabelas?

    por ex: supondo que tenho 2 usuários e 3 departamentos;

    Cada registro da tabela 3 terá o id_usuario e id_departamento automaticamente de acordo com a os registros vindos das tabelas 1 e 2.

    Teoricamente seria fácil, usando uma estrutura de repetição (for, while, ...) dentro de outra, pra fazer isso. Porem, o problema eh que to usando sqlDataReader e ele não tem moveFist() pra voltar ao começo depois da primeira "passada", dai ele passa pela tabela 2 apenas uma vez.

    Alguém tem uma sábia ideia? 

    Obrigado.

    quinta-feira, 26 de setembro de 2013 19:46

Respostas

  • Luzianio, sairia um custo computacional grande mais em cada registro lido do datareader vc faria uma consulta nas outras tabelas para pegar os ID delas e gravar na terceira tabela, ou dependendo da situação se por exemplo vc popular os dados em um gridview para cada linha vc colocaria o id das outras tabelas em um campo visible = false, e percorreria o gridview e com findcrontrol pegaria o id dos campos visibel = false e gravaria na tabela 3.

    Mais o melhor é já  trazer os ID´s das outras tabelas assim o custo computacional seria bem menor.


    Junior

    • Marcado como Resposta Giovani Cr segunda-feira, 7 de outubro de 2013 17:31
    sexta-feira, 27 de setembro de 2013 18:08

Todas as Respostas

  • Luzianio, sairia um custo computacional grande mais em cada registro lido do datareader vc faria uma consulta nas outras tabelas para pegar os ID delas e gravar na terceira tabela, ou dependendo da situação se por exemplo vc popular os dados em um gridview para cada linha vc colocaria o id das outras tabelas em um campo visible = false, e percorreria o gridview e com findcrontrol pegaria o id dos campos visibel = false e gravaria na tabela 3.

    Mais o melhor é já  trazer os ID´s das outras tabelas assim o custo computacional seria bem menor.


    Junior

    • Marcado como Resposta Giovani Cr segunda-feira, 7 de outubro de 2013 17:31
    sexta-feira, 27 de setembro de 2013 18:08
  • Cara, nao sei se entendi direito mas se vc usou as keys certinho faz assim:

    select Tabela_Usuario.Nome, Tabela_Departamento.Departamento from Tabela_3
    inner join Tabela_Usuario
    
    on (Tabela_Usuario.ID = Tabela_3.ID_Tabela_Usuario)
    
    Inner join Tabela_Departamente
    
    on (Tabela_Departamento.ID = Tabela_3.ID_Tabela_Departamento)

    é isso que você quer? Se for marque como útil, vlw.

    sexta-feira, 27 de setembro de 2013 18:57