none
Como passar uma consulta LINQ como parämetro e percorrer depois no m[etodo RRS feed

  • Pergunta

  • Pessoal, tenho a seguinte consulta linq?

    var consulta = (from a in db.QS
                                    where a.Anuncio.Template.Nome_Template == cbTemplates.Text
                                    select new
                                    {
                                        a.Anuncio.Texto,
                                        a.Anuncio.Data_Criacao,
                                        a.Anuncio.Data_Ultima_Atualizacao,
                                        a.Valor_QS,
                                        a.Variacao
                                    });

    To passando isso para um m[etodo com a seguinte assinatura?

     private void configurarDataTable(DataTable dt, IQueryable consulta){}

    Agora preciso inserir no datatable os valores de a.Anuncio.Texto da consulta linq.

    Como fazer?


    Se a resposta foi útil, por favor marque como útil. Leia a bíblia.

    quarta-feira, 10 de abril de 2013 13:23

Todas as Respostas

  • Boa tarde fiz um código aqui espero que seja isso e lhe ajude segue abaixo :

         var Pais = new List<Pais> { 
                                           new Pais { Nome = "BR", Id = 1 },
                                           new Pais { Nome = "EU", Id = 2 },
                                           new Pais { Nome = "FR", Id = 3 },
                                           new Pais { Nome = "GE", Id = 4 },
                                           new Pais { Nome = "UK", Id = 5 },
                                           new Pais { Nome = "CH", Id = 6 },
    
                                            };
    
    
                
    
    
                DataTable Tabela = new DataTable();
                Tabela.TableName = "TBLPais";
                Tabela.Columns.Add("Id", typeof(int));
                Tabela.Columns.Add("Pais", typeof(string));
    
                foreach (var p in Pais)
                {
                    Tabela.Rows.Add(p.Id, p.Nome);
                }
    
                foreach (DataRow L in Tabela.Rows)
                {
                    Console.WriteLine(L["Pais"]);
    
                }
    
    
                Console.WriteLine("");
                Console.ReadLine();


    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br

    quarta-feira, 10 de abril de 2013 16:42
  • Cara,

    Você pode copiar a consulta do linq para o DataTable:

    IEnumerable<DataRow> query =
        (from a in db.QS where a.Anuncio.Template.Nome_Template == cbTemplates.Text
        select new
        {
           a.Anuncio.Texto,
           a.Anuncio.Data_Criacao,
           a.Anuncio.Data_Ultima_Atualizacao,
           a.Valor_QS,
           a.Variacao
       });
    
    // Create a table from the query.
    DataTable boundTable = query.CopyToDataTable<DataRow>();


    http://msdn.microsoft.com/es-es/library/bb386921(v=vs.90).aspx

    http://msdn.microsoft.com/pt-br/library/vstudio/bb359707(v=vs.100).aspx


    Atenciosamente, Samuel dos Anjos

    quarta-feira, 10 de abril de 2013 17:15
  • Samuel eu só não posso fazer da forma como vc disse, pq eu tenho q fazer algumas operações com essa query antes de jogar no datatable, como [or exemplo, excluir alguns registros, somar alguns campos, etc....

    Mas vlw pela resposta!


    Se a resposta foi útil, por favor marque como útil. Leia a bíblia.

    quarta-feira, 10 de abril de 2013 23:47