none
"Somando" Duas SqlDataReader RRS feed

  • Pergunta

  • Olá pessoal.

    Gostaria de saber como posso "somar" dois SqlDataReader. Exemplo:

     

    SqlDataReader nomesBrasileiros; (onde tenho uma conjunto resultado de SELECT nome FROM Brasileiros)

    SqlDataReader nomesAmericanos; (onde tenho uma conjunto resultado de SELECT nome FROM Americanos)

     

    Como posso soma-los para obter um SqlDataReader nomesBrasileirosAmericanos?

     

    Eu sei que poderia fazer a filtragem na hora da pesquisa SQL porém gostaria de saber por questões de estudo mesmo como somar dois DataReaders.
    Até porque em consultas complexas com condições complexas seria interessante executar QUERY's menores e depois "soma-las" no código (através de 

    segunda-feira, 29 de agosto de 2011 20:01

Todas as Respostas

  • olá amigo,

    Não entendi bem o que quis dizer quando diz "somar sql" no DataReader. Mas pelo que entendi vc quer ter 2 retornos num so DataReader. É isso? Se for isso basta vc passar seus dois comandos para o seu SqlCommand, separados por ";" é claro, e depois na hora de ler o SqlDataReader vc faz assim:

    - como o DataReader apresentará dois resultados fazendo o dr.Read() e fazendo a leitura vc so obterá o primeiro retorno (primeiro resultado). Pra obter o resultado seguinte vc deve fazer dr.Next() e então fazer a leitura do resultado seguinte (o segundo).

    Se nao for essa a duvida, Post mais detalhadamente.

     

    Abraço!

    segunda-feira, 29 de agosto de 2011 20:43
  • Cara é simples faça uma consulta qualquer em um datareader! você tem uma "tabela" certo?

    Faça outra em outro datareader! você tem outra tabela certo?

    Agora junte os dois em uma tabela só! isso que quero fazer! que da pra fazer de outras formas eu sei. mais quero dessa forma. 

    segunda-feira, 29 de agosto de 2011 21:36
  • Vc quer fazer um "join" no c# é isso??

    Pra isso deve utilizar datasets, datatables ....

    fundir dois DataReader creio ser impossivel. A não ser que vc jogue o resultado num datatable e jogue o outro em outro datatable. Aí faz o join desses dois datatables.

    terça-feira, 30 de agosto de 2011 12:54
  • Hmm entendo. eu queria alguma função pronta dos DataReaders para isso. mais parece que não tem mesmo.
    terça-feira, 30 de agosto de 2011 13:50
  • string brasileiro = datareader["Nome"].Tostring();

    string amaericano = datareader["Nome"].Tostring();

    string juntar_dois = brasileiro + americano;
    messagenbox.show( juntar_dois.tostring());


    One word frees us of all the weight and pain of life: that word is love.
    sexta-feira, 2 de setembro de 2011 20:20
  • mais e com multiplas colunas?
    sábado, 3 de setembro de 2011 14:59
  • Jean,

     

    Eu recomendo o seguinte:

    1 - Use apenas 1 dataReader a colque as duas querys no mesmo, separando-as por ;

    2 - "Percorra" os registros para preencher uma lista, dataTable ou sei lá o que com os registros

    3 - Pode fazer assim para recuperar todas as queryes do seu DataReader:

    while (seuDataReader.HasRows)
    {
      
      while(seuDataReader.Read())
      {
        //preecha seu objeto
        
      }
      
      seuDataReader.NexResult(); //se tiver outro select ele passar para o próximo. 
    }
    


    sábado, 3 de setembro de 2011 15:41