none
Fazer um select a partir de um array ou lista RRS feed

  • Pergunta

  • Tenho uma página onde nela existe um gridview com vários registros e para cada registro tem um checkbox, o usuário vai marcar os registros que ele quiser, qdo o usuário clicar no botão vou percorrer essa grid e verificar quais registros foram marcados gravando o id em um array e tenho que dar um select para pegar informações dos registros selecionados.

    O select seria mais ou menos assim :

    select nome,endereço,bairro from cliente where id = 

    No where teria que passar o array.

    Isso seria possível ?


    Junior

    quinta-feira, 14 de agosto de 2014 20:01

Respostas

  • Olá Junior,

     sim é possivel, alias existem varias formas de fazer isso, se estiver usando algum ORM basa usar o "Contains", caso não use mostre como realizar seus Select s na fonte de dados e qual tecnologia utiliza para acesso a dados !

    sexta-feira, 15 de agosto de 2014 11:10

Todas as Respostas

  • Olá Junior,

     sim é possivel, alias existem varias formas de fazer isso, se estiver usando algum ORM basa usar o "Contains", caso não use mostre como realizar seus Select s na fonte de dados e qual tecnologia utiliza para acesso a dados !

    sexta-feira, 15 de agosto de 2014 11:10
  • Daniel obrigado por me responder, se eu fizer esse select com linq como eu pegaria esse array ?

    Outra dúvida é eu teria como passar o array via querystring caso o cliente deseje que o relatório seja exibido em uma janela pop-up.


    Junior

    segunda-feira, 18 de agosto de 2014 15:00
  • Daniel obrigado por me responder, se eu fizer esse select com linq como eu pegaria esse array ?

    Outra dúvida é eu teria como passar o array via querystring caso o cliente deseje que o relatório seja exibido em uma janela pop-up.


    Junior

     Olá Junior veja esse método, veja que eu passo um array como parametro e faço o select de acordo com os itens desse array (List<T>) :

    public Array BuscaComArray(List<string> lista) { dynamic array = null; if (lista.Count > 0) { using (var contexto = MeuContexto()) { array = contexto.TB1.Where(i => lista.Contains(i.NOME))

    .Select(sel => sel).ToArray(); } } return (Array)array; }

     Com relação a query string poderia sim, mas caso os campos do array for muito pode estourar a qtde de caracteres da url... Para evitar isso poderia passar o array via Session...



    • Editado Daniel Brito br segunda-feira, 18 de agosto de 2014 16:56 Formatação
    segunda-feira, 18 de agosto de 2014 16:51
  • Daniel na realidade resolví assim :

    List<int> codigo = new List<int>();
    
    var result = (from tgo in db.funcionarios where codigo.Contains(tgo.id) select tgo).ToList();
    


    Junior

    quarta-feira, 20 de agosto de 2014 12:18
  • Daniel na realidade resolví assim :

    List<int> codigo = new List<int>();
    
    var result = (from tgo in db.funcionarios where codigo.Contains(tgo.id) select tgo).ToList();


    Junior

     Olá Junior,

     sim basicamente é a mesma coisa pq o linq é transformado em lambda em execução mas questão de funcionamento ambos funcionam eu prefiro lambda só por causa da sintaxe mesmo... 

    quarta-feira, 20 de agosto de 2014 12:25