2010-04-02 38 views
5

Sử dụng mã bên dưới (từ một ứng dụng giao diện điều khiển tôi đã trộn với nhau), tôi thêm bảy cột vào dữ liệu của mình. Khi điều này được thực hiện, làm thế nào tôi có thể thiết lập kiểu dữ liệu cho mỗi cột? Ví dụ, cột 1 của datatable sẽ có tiêu đề "ItemNum" và tôi muốn đặt nó là một Int. Tôi đã xem xét một số ví dụ về thét 'net, nhưng hầu hết tất cả chúng hiển thị tạo tiêu đề cột và kiểu dữ liệu cột cùng một lúc, như thế này:Tôi làm cách nào để thêm loại dữ liệu cột sau khi thêm các tiêu đề cột vào cột dữ liệu của mình?

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

Tại thời điểm này trong chương trình của tôi, cột đã có một cái tên. Tôi chỉ muốn làm một cái gì đó như thế này (mã không thực tế):

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

Dưới đây là mã của tôi cho đến nay (cung cấp cho các cột tên của họ):

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

Rõ ràng, tôi là khá mới tại điều này, nhưng cố gắng hết sức để học. Ai đó có thể chỉ cho tôi đi đúng hướng? Cảm ơn!

Trả lời

2

Bạn sẽ có thể gán bất động sản kiểu dữ liệu của cột chừng nào không có dữ liệu được lưu trữ trong cột đó được nêu ra:

Mã sản phẩm:

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

Đúng, tại thời điểm này trong chương trình, không có dữ liệu trong datatable. Tuyệt vời! Cảm ơn bạn rất nhiều vì đã phản hồi nhanh! Tôi rất cảm kích điều đó. C# đang trở nên thú vị hơn mỗi ngày! – Kevin

1

visual studio không cho phép thay đổi loại cột có một số dữ liệu, u phải tạo cột mới có loại lý tưởng ur và sao chép dữ liệu từ cột được chỉ định sang cột mới

DataTable DT = new DataTable(); 
DT = somsdata ; 
    DT.columns.Add("newcol",object); 
    foreach(datarow dr in DT.rows) 
      dr.itemarray["newcolumn"] = dr.itemarray["oldColumn"]; 
Các vấn đề liên quan