2015-06-02 81 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

相关问题