2015-06-02 115 views
1

我想創建一個DataTable,但我不知道在編譯時列的類型。因此,我希望在運行時決定列類型。是否可以在運行時在DataTable中定義列類型?

我已經試過:

首先,我從Excel中獲取一些數據:

Type tempCheck = (dynamic)(xlRange.Cells[1, currentColumnsCount] as Excel.Range).Value2.GetType(); 

然後我嘗試使用類型來創建一個列。

myDataTable.Columns.Add(columnName, typeof(tempCheck.GetType()); 

我得到的錯誤:

The type or namespace name 'tempCheck' could not be found (are you missing a using directive or an assembly reference?)

回答

4

tempCheck已經是一個類型的,所以你不需要typeof

myDataTable.Columns.Add(columnName, tempCheck); 

typeof是用於獲取運營商來自類型名稱的System.Type的實例,並且這是在編譯時完成的。

錯誤「的類型或命名空間名稱tempCheck「找不到」來了,因爲自從typeof正在尋找一個編譯時類型,它的字面尋找一個叫tempCheck類型,如類或委託等。

+3

仔細查看第一個代碼示例,'tempCheck'已經是類型了,正確的答案就是'myDataTable.Columns.Add(columnName,tempCheck);' –

+0

@ScottChamberlain oops,是的,你是對的。非常感謝。 – vcsjones

相關問題