2010-04-02 7 views
5

Korzystając z poniższego kodu (z aplikacji konsolowej, którą skleciłem) dodam siedem kolumn do mojego datatable. Jak to zrobić, jak mogę ustawić typ danych dla każdej kolumny? Na przykład kolumna 1 datatable będzie miała nagłówek "ItemNum" i chcę ustawić go jako Int. Szukałem na kilka przykładów na Thet „sieci, ale przede wszystkim z nich pokazują tworzenie nagłówek kolumny i typ danych kolumny naraz, tak:Jak dodać typ danych kolumny po dodaniu nagłówków kolumn do mojego datatable?

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

W tym momencie w moim programie, kolumna ma już imię. Chcę po prostu zrobić coś takiego (nie rzeczywisty kod):

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

Oto mój kod tak daleko (który daje kolumnach ich nazwa):

// 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); 
     }  

Oczywiście, jestem całkiem nowy w to, ale bardzo trudne do nauczenia. Czy ktoś może wskazać mi właściwy kierunek? Dzięki!

Odpowiedz

2

powinien być w stanie przypisać typ danych właściwości kolumny, tak długo jak nie ma danych przechowywanych w tej kolumnie jeszcze:

KOD:

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

Tak, w tym momencie programu nie ma danych w datatable. Niesamowite! Dziękuję bardzo za szybką odpowiedź! Bardzo to doceniam. C# jest coraz bardziej zabawne każdego dnia! – Kevin

1

Visual Studio nie pozwala na zmianę typu kolumny ma pewne dane, musisz utworzyć nową kolumnę z idealnym typem i skopiować dane z określonej kolumny do nowej kolumny

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