是否可以在运行时在DataTable中定义列类型?

本文关键字:定义 类型 DataTable 运行时 是否 | 更新日期: 2023-09-27 17:52:48

我想创建一个数据表,但我不知道在编译时列的类型。因此,我希望在运行时决定列的类型。

我试过了:

首先,我从Excel中得到一些数据:

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

然后我尝试使用该类型创建一个列。

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

我得到错误:

类型或命名空间名称'tempCheck'找不到(您是否缺少using指令或程序集引用?)

是否可以在运行时在DataTable中定义列类型?

tempCheck已经是一个类型,所以您不需要typeof:

myDataTable.Columns.Add(columnName, tempCheck);

typeof是一个操作符,用于从类型名称中获取System.Type的实例,并且在编译时完成。

错误"类型或命名空间名称'tempCheck'无法找到"即将出现,因为typeof正在寻找编译时类型,它实际上是在寻找名为tempCheck的类型,如类或委托等。