C# 是否可以在运行时在DataTable中定义列类型?
我想创建一个DataTable,但我不知道编译时列的类型。因此,我希望在运行时确定列类型 我所尝试的: 首先,我从Excel中获取一些数据:C# 是否可以在运行时在DataTable中定义列类型?,c#,datatable,system.data,system.data.datatable,C#,Datatable,System.data,System.data.datatable,我想创建一个DataTable,但我不知道编译时列的类型。因此,我希望在运行时确定列类型 我所尝试的: 首先,我从Excel中获取一些数据: Type tempCheck = (dynamic)(xlRange.Cells[1, currentColumnsCount] as Excel.Range).Value2.GetType(); 然后我尝试使用该类型创建列 myDataTable.Columns.Add(columnName, typeof(tempCheck.GetType());
Type tempCheck = (dynamic)(xlRange.Cells[1, currentColumnsCount] as Excel.Range).Value2.GetType();
然后我尝试使用该类型创建列
myDataTable.Columns.Add(columnName, typeof(tempCheck.GetType());
我得到一个错误:
找不到类型或命名空间名称“tempCheck”(是否为“”)
缺少使用指令或程序集引用?)
tempCheck
已经是一个类型,因此您不需要typeof
:
myDataTable.Columns.Add(columnName, tempCheck);
typeof
是一个运算符,用于从类型名称获取System.Type
的实例,这是在编译时完成的
出现错误“找不到类型或命名空间名称'tempCheck',因为
typeof
正在查找编译时类型,它实际上是在查找名为tempCheck
的类型,如类或委托等。tempCheck
已经是一个类型,所以您不需要typeof
:
myDataTable.Columns.Add(columnName, tempCheck);
typeof
是一个运算符,用于从类型名称获取System.Type
的实例,这是在编译时完成的
出现错误“找不到类型或命名空间名称'tempCheck',因为
typeof
正在查找编译时类型,它实际上是在查找名为tempCheck
的类型,如类或委托等。请仔细查看第一个代码示例,tempCheck
已经是该类型,正确的答案应该是myDataTable.Columns.Add(columnName,tempCheck)代码>@ScottChamberlain哦,是的,你是对的。非常感谢。请仔细查看第一个代码示例,tempCheck
已经是该类型,正确答案应该是myDataTable.Columns.Add(columnName,tempCheck)代码>@ScottChamberlain哦,是的,你是对的。非常感谢。