Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以在运行时在DataTable中定义列类型?_C#_Datatable_System.data_System.data.datatable - Fatal编程技术网

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

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());

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

我所尝试的:

首先,我从Excel中获取一些数据:

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哦,是的,你是对的。非常感谢。