none
Consulta em um DataSet RRS feed

  • Pergunta

  • Bom dia,

     

    Eu tenho um DataSet tipado, com os DataTables professor, aluno e turma. Cada aluno e professor pode estar ligado em uma ou mais turmas, isso ocorre no banco através de Tables intermediárias: alunoPorTurma e professorPorTurma.

     

    O meu problema é como consultar os alunos de uma determinada turma. No banco é simples, eu faço um join e pronto, mas eu preciso consultar no DataSet pois este está no cachê da minha aplicação.

     

    Como fazer consulta mais complexa em DataSet?

     

    Muito Obrigado.

    segunda-feira, 25 de junho de 2007 12:47

Respostas

  • Leandro,

     

    Você vai ter que trazer a tabela alunoPorTurma também no DataSet e estabelecer o relacionamento entre as tabelas.

    Um dos métodos de um DataRow é o GetChildRows, onde você pode indicar os relacionamentos entre as tabelas e obter as linhas.

     

    Por exemplo, para cada turma da sua tabela Turmas no DataSet, você listaria cada um dos alunosPorTurma que por sua vez listaria os alunos do relacionamento:

     

    foreach(DataRow dr in SeuDataSet.Tables["Turmas"].Rows)

    {

            Console.WriteLine(dr["NomeTurma"].ToString());

            foreach(DataRow drAPT in dr.GetChildRows("NomeDoRelacionamentoTurmas-AlunoPorTurma"))

            {

                   foreach(DataRow aluno in drAPT.GetChildRows("NomeDoRelacionamentoAlunoPorTurma-Alunos")

                            Console.WriteLine(aluno["Nome"].ToString());

            }

    }

     

    Se isso for numa interface, você pode usar DataBinding entre os controles, conforme demonstro no meu blog no post abaixo:

    http://thespoke.net/blogs/fbcjunior/archive/2005/09/09/DataBindingEDataRelations.aspx

     

    Abraços,
    Francisco
    OK, Computer - http://thespoke.net/blogs/fbcjunior/default.aspx

    segunda-feira, 25 de junho de 2007 15:55
    Moderador