Pagina 6 di 6 primaprima ... 4 5 6
Visualizzazione dei risultati da 51 a 57 su 57
  1. #51
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Si ma se la classe cambia cambiano i nomi...ed i valori, quindi per visualizzarli su una tabella(vista) devi estrarre i valori di ogni campo relativo a quella tabella(sql) selezionata/query.
    quindi la tua esigenza è di dare in pasto a una griglia un dataset qualunque e lei automaticamente si adatta?

  2. #52
    Quote Originariamente inviata da U235 Visualizza il messaggio
    (problema di visualizzazione post)
    Si effettivamente Alka dice bene.
    Invocare ciascuna propieta' termite reflection per prelevarne I valori in una vista/query/oggetto non e' la miglior trovata.
    L'accesso diretto e' sicuramente piu' rapido.
    Grazie a tutti.
    Ultima modifica di jabjoint; 14-05-2023 a 10:32
    jabjoint

  3. #53
    Si optime, se ho capito si, MA come dicevo l'obbiettivo e' stato raggiunto con la reflection.
    L'obbiettivo e' rappresentare I dati prelevati da qualsiasi vista/oggetto in Una DataGridView senza riscrivere I campi Di ognuna
    Se vi sono metodi migliori bene.
    Probabilmente si puo' manipolare in modo efficiente Il DbSet MA non son in grado.
    Ultima modifica di jabjoint; 14-05-2023 a 10:38
    jabjoint

  4. #54
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    L'obbiettivo e' rappresentare I dati prelevati da qualsiasi vista/oggetto in Una DataGridView senza riscrivere I campi Di ognuna
    A parte il discorso sulla soluzione, io personalmente eviterei scelte del genere, visto che in questo modo ti precludi ogni possibilità di customizzazione della vista/griglia. Ad esempio, su una lista ordini vedrei bene un bottone "clona", cosa che non metterei su una lista fornitori Insomma, ok generalizzare/semplificare, ma con giudizio


  5. #55
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    L'obbiettivo e' rappresentare I dati prelevati da qualsiasi vista/oggetto in Una DataGridView senza riscrivere I campi Di ognuna
    Retrospettivamente, ti lascio anche uno spunto di riflessione: se avessi posto questa domanda sin da subito, specificando lo scopo invece dei dettagli operativi, non credi che sarebbe stato meglio (IMHO: sì sì e sì )? Adesso, anche se ti venisse proposta una soluzione più efficace (e credo proprio che ve ne siano) probabilmente smontare quello che hai fatto ti costerebbe troppo e finirai col tenerti una soluzione non ottimale.

  6. #56
    Quote Originariamente inviata da optime Visualizza il messaggio
    Retrospettivamente, ti lascio anche uno spunto di riflessione: se avessi posto questa domanda sin da subito, specificando lo scopo invece dei dettagli operativi, non credi che sarebbe stato meglio (IMHO: sì sì e sì )? Adesso, anche se ti venisse proposta una soluzione più efficace (e credo proprio che ve ne siano) probabilmente smontare quello che hai fatto ti costerebbe troppo e finirai col tenerti una soluzione non ottimale.

    Sbagliando si impara. Probabilmente Ho trovato il modo di elencare le proprietà con un metodo efficiente.
    Si trova tra le classi del DbContext la possibilità di farlo. Appena ho tempo posto.
    La domanda l'ho posta diversamente perché mi ero interessato al caso specifico, che riguarda poco col riassunto generale.
    jabjoint

  7. #57
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Sbagliando si impara. Probabilmente Ho trovato il modo di elencare le proprietà con un metodo efficiente.
    Si trova tra le classi del DbContext la possibilità di farlo. Appena ho tempo posto.
    La domanda l'ho posta diversamente perché mi ero interessato al caso specifico, che riguarda poco col riassunto generale.
    codice:
           public void setObjectInView(DataGridView view, IEnumerable objs)
            {
                
                foreach (object o in objs)
                {
                    IEnumerable<string> p = nde.Entry(o).CurrentValues.PropertyNames;
    
    
                    string[] values = new string[p.Count()];
                    int k = 0;
    
    
                    foreach (string x in p)
                    {
                        string s = nde.Entry(o).CurrentValues.GetValue<object>(x).ToString();
                        values[k] = s; k++;
                        
                    }
    
    
                    view.Rows.Add(values);
    
    
                }
    
    
            }
    jabjoint

  8. #58
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,521
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    codice:
           public void setObjectInView(DataGridView view, IEnumerable objs)
            {
                
                foreach (object o in objs)
                {
                    IEnumerable<string> p = nde.Entry(o).CurrentValues.PropertyNames;
    
    
                    string[] values = new string[p.Count()];
                    int k = 0;
    
    
                    foreach (string x in p)
                    {
                        string s = nde.Entry(o).CurrentValues.GetValue<object>(x).ToString();
                        values[k] = s; k++;
                        
                    }
    
    
                    view.Rows.Add(values);
    
    
                }
    
    
            }
    Tralasciando il concetto di efficienza, che in questo caso potrebbe essere quantomeno discutibile, ma dal punto di vista di un utente a che servirebbe avere una griglia di dati ordinati in modo presumibilmente casuale, con un numero casuale di colonne in cui nella migliore delle ipotesi1 in alcune righe vedrebbe parte di esse vuote, senza alcun riferimento al significato che questi valori hanno visto che non corrispondono ad una colonna specifica e non hanno etichetta, per di più convertiti in stringa2 a prescindere dal tipo a cui appartengono? Che dovrebbe capire un utente da questa visualizzazione? E nel caso come potrebbe modificarli da questa griglia?

    Il punto è che se non ci dici che cosa vorresti ottenere, ma solo come lo ottieni o quantomeno come pensi di ottenerlo senza nessuna logica apparente, come già detto da utenti che non sono certo novellini, l'idea che dai è che stai trollando.

    Note:
    1dal lato del programmatore devi avere previsto il numero massimo di proprietà che un oggetto può avere, quindi comunque devi sapere questo in fase di creazione del datagridview, e quindi inutile dal punto di vista della flessibilità dinamica

    2
    alcuni di questi possono non essere valori convertibili in stringa, quindi se non hai fatto un override specifico del metodo ToString nel tipo relativo otterresti solo il nome del tipo in stringa.


    Ultima modifica di U235; 16-05-2023 a 05:45

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 © 2024 vBulletin Solutions, Inc. All rights reserved.