Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    121

    [C#] GridView e colonne unbound

    Salve a tutti!

    Vi chiedo: ma qual'è il metodo che si usa per riempire una colonna?! Mi spiego.
    Ho una tabella (dataGridView) che contiene cinque colonne legate a risultati di una query, in pratica sono legate ad un dataSet. Dovrei creare una sesta colonna il cui contenuto sia la somma dei valori presenti nella terza e nella quarta colonna. Esempio:

    ---------------------------------------------------------------------------------------
    |___col1___|___col2____|___col3____|___col4____|__ _col5___|__col6___|
    --------------------------------------------------------------------------
    |____1____|____ 2_____|____50_____|____50____|____5____|___100___|
    ---------------------------------------------------------------------------------------

    Ora... la colonna l'ho creata, aggiungendo (con l'IDE) una colonna all'insieme presente nel dataSet (ovviamente specificando che deve essere indipendente dai dati).
    Come faccio però a riempirla??? Non esiste un metodo del tipo
    tabella.col6.contenuto = col4.value + col5.value (ovviamente iterato per tutte le righe del dataSet)...
    Non riesco proprio a capire il metodo qual'è, non l'ho trovato!

    Grazie mille a tutti!

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Se crei il dataset da codice, usando una query, ti basta aggiungere la colonna calcolata nella query indicare esplicitamente i campi. Esempio:

    codice:
    SELECT col1, col2, col3, col4, (col3 + col4) As col6
    FROM tabella
    se poi modifichi i valori nelle colonne col3 e col4 dalla griglia, allora devi inserire il codice che aggiorni la colonna calcolata col6.


  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    121
    Originariamente inviato da gibra
    Se crei il dataset da codice, usando una query, ti basta aggiungere la colonna calcolata nella query indicare esplicitamente i campi. Esempio:

    codice:
    SELECT col1, col2, col3, col4, (col3 + col4) As col6
    FROM tabella
    se poi modifichi i valori nelle colonne col3 e col4 dalla griglia, allora devi inserire il codice che aggiorni la colonna calcolata col6.

    Grazie per la risposta! Al risultato preso dalla query ci avevo pensato, ma non vorrei far eseguire calcoli al motore del db! Preferirei che se ne occupasse il compilatore
    Quale sarebbe il codice che aggiorni la colonna col6? E' proprio quello che cerco, ma non riesco a capire come fare, perché non conosco il metodo!
    Cioè, in Java farei così (pseudocodice):
    codice:
    cella[rigaI-esima][colonna6] = getValueAt(colonna3)+getValueAt(colonna4);
    ma in C# come faccio? Pur volendo ritornare il DataSet sotto forma di array, effettuare i calcoli e schiaffarvi il risultato nella cella alla riga I e colonna numero 6... non saprei come fare!

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    121
    Ho risolto da solo, facendo così:

    codice:
    for (int i = 0; i < myDataGridView.Rows.Count; i++)
    {
        int val1 = myDataGridView.Rows[i].Cells[3].Value;
        int val2 = myDataGridView.Rows[i].Cells[4].Value;
        int valDef = val1+val2;
        myDataGridView.CurrentCell = dataGridView1.Rows[i].Cells[6];
        myDataGridView.CurrentCell.Value = valDef;
    }
    che è più o meno come si farebbe in Java
    Grazie e spero che possa essere utile a qualcuno!

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.