Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    LINQ - Aggiungere dinamicamente campi alla select

    Ciao a tutti.
    Ho un problema con LINQ, spero che sia possibile risolverlo, ho già fatto molte ricerche senza risultati!


    Ho una tabella con tantissimi campi,
    __________
    MIATABELLA
    - campo1
    - campo2
    - campo3
    - campo4
    - campo5
    .
    .
    .
    ___________

    e vorrei selezionarne solo alcuni a seconda della pagina in cui mi trovo.

    La lista dei campi da selezionare mi arriva in un array di string .
    Come posso creare una LINQ Query che soddisfi questo?
    codice:
    // esempio
    string[] campi = {"campo3", "campo6", "campo10"};
    
    var dati =
      from x in db.MIATABELLAs
      select < quello che c'è in campi >
    Spero che possiate aiutarmi... l'alternativa è tornare ai vecchi DataReader costruendomi la query come stringa oppure selezionare sempre tutti i campi.
    Il cinghiale è un animale raffinato

  2. #2
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    ti seleziona solo il campo1
    from n in campi
    where n.CompareTo("campo1") == 0
    select n

    fa la stessa cosa
    IEnumerable<string> campiFiltrati =
    System.Linq.Enumerable.Where (campi , n => n.CompareTo("campo1") == 0);

    però non è che si è capito cosa vuoi fare...
    I got the remedy

  3. #3
    Forse non mi sono spiegato bene.
    Provo ad essere più chiaro col codice.

    Ti faccio la stessa funzione che vorrei realizzare usando però i DataReader:
    codice:
    string[] campi = {"campo3", "campo6", "campo10"};
    
    
    string query = "SELECT ";
    foreach(string campo in campi) query += campo + ", ";
    
    query += " FROM MiaTabella";
    
    SqlCommand command = new SqlCommand(query, MyConnectionObject);
    SqlDataReader dataread = command.ExecuteReader(CommandBehavior.CloseConnection);
    La mia domanda è: questa cosa si può realizzare con LINQ??
    Il cinghiale è un animale raffinato

  4. #4
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    La risposta è si che puoi farlo, guarda qui per la parte concatenazione stringe con linq
    http://msdn.microsoft.com/en-us/library/bb548651.aspx

    ps: consiglio: la prossima volta se hai domande su linq posta nella sezione visual basic e .net
    I got the remedy

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.