• User Newbie

    C# Problema con datatable

    Ciao a tutti.
    Sto effettuando delle modifiche ad un sito.
    In una pagina c'è una GridView caricata attualmente tramite un dataset.
    Questo dataset è implementato da una query SQL.

    Ho necessità di creare una datatable con i valori trasposti del dataset, ovvero portare le righe in colonne e viceversa e caricare il GridView in questo modo.

    Anticipo che non posso modificare la query (o almeno non mi conviene perché il dataset nel quale viene caricato viene utilizzato da molti grafici e altre tabelle..quindi preferirei lasciarlo in questo modo).

    La soluzione mi sembrava molto semplice..

    Per andare sul concreto, attualmente il tutto funziona così:

    myGridView.DataSource = myDs.Tables[0];
    myGridView.DataBind();

    Io invece ho creato un datatable, nel quale ciclando carico le righe del dataset nelle colonne dal datatable e carico quindi il GridView con la mia nuova tabella.
    Il tutto funziona a meraviglia tranne che per un problema:

    Il mio dataset originale restituisce del valori di tipo Double. (object{double})
    Ma quando vado a riportarli nel datatable non ho modo di trasformarli in Double, ma restano di tipo Object String.

    Ho provato a fare convert, parse etc.. ho anche provato ad appoggiare i valori dentro variabili di tipo Double ma niente..

    Inutile dire che mi servono in Double quei valori perché mi servono per effettuare delle operazioni e successivamente devo fare degli arrotondamenti in fase di visualizzazione.

    Preciso che non tutti i valori sono double, ovvero le intestazioni delle colonne e i valori della prima colonna sono stringhe.

    la tabella insomma è così:

    string | string | string | string | string | <--INTESTAZIONE
    string | double | double | double | double |
    string | double | double | double | double |
    string | double | double | double | double |
    string | double | double | double | double |

    In ogni caso quando ciclo ho fatto in modo di caricare prima l'intestazione, poi la prima colonna e con un ciclo a parte i valori double, per poter fare la conversione.

    Non riesco proprio a capire perché il dataset caricato da query SQL è corretto, se creo una copia del dataset o lo copio in una tabella mi mantiene la tipologia di tutti i valori.. mentre se provo a replicare un dataset, o un datatable o anche solo un datarow.. perdo la tipologia double.

    Qualche suggerimento? Mi sfugge qualcosa?
    Grazie mille a tutti!

    Lela


  • User Newbie

    Ho risolto.. impostando il typeof(double) quando faccio ADD della colonna.. mi era proprio sfuggito!