2010-04-02 14 views
5

Utilizzando il codice seguente (da un'app console che ho messo insieme), aggiungo sette colonne al mio datatable. Una volta fatto, come posso impostare il tipo di dati per ogni colonna? Ad esempio, la colonna 1 del datatable avrà l'intestazione "ItemNum" e voglio impostarla come Int. Ho guardato alcuni esempi su thet 'sulla rete, ma la maggior parte tutti loro mostro creare l'intestazione di colonna e il tipo di dati della colonna in una sola volta, in questo modo:Come posso aggiungere il tipo di dati della colonna dopo aver aggiunto le intestazioni delle colonne al mio datatable?

loadDT.Columns.Add("ItemNum", typeof(Int)); 

A questo punto nel mio programma, la colonna ha già un nome. Voglio solo fare qualcosa di simile (codice non reale):

loadDT.Column[1].ChangeType(typeof(int)); 

Ecco il mio codice finora (che dà le colonne il loro nome):

// get column headings for datatable by reading first line of csv file. 
     StreamReader sr = new StreamReader(@"c:\load_forecast.csv"); 
     headers = sr.ReadLine().Split(','); 
     foreach (string header in headers) 
     { 
      loadDT.Columns.Add(header); 
     }  

Ovviamente, io sono abbastanza nuovo a questo, ma sta cercando molto difficile da imparare. Qualcuno può indicarmi la giusta direzione? Grazie!

risposta

2

Si dovrebbe essere in grado di assegnare proprietà tipo di dati della colonna fino a quando non ci sono dati memorizzati in ancora quella colonna:

CODICE:

loadDT.Column[1].DataType = typeof(int); 
+0

Sì, a questo punto del programma, non ci sono dati nel datatable. Eccezionale! Grazie mille per la rapida risposta! Lo apprezzo molto. C# diventa sempre più divertente ogni giorno! – Kevin

1

Visual Studio non permette di cambiare il tipo di di una colonna ha alcuni dati, u deve creare una nuova colonna con ur tipo ideale e copiare i dati da colonna specificata nuova colonna

DataTable DT = new DataTable(); 
DT = somsdata ; 
    DT.columns.Add("newcol",object); 
    foreach(datarow dr in DT.rows) 
      dr.itemarray["newcolumn"] = dr.itemarray["oldColumn"]; 
Problemi correlati