如何更改c#中数据表中所有列的数据类型

时间:2016-05-12 12:47:44

标签: c# .net c#-4.0 datatable

我有一个DataTable dt,其所有列都是string类型,但其中很多都有" interger值"在他们中但仅作为字符串。

例如: -

可乐

23

34

56

这些也存储在datatable中,但作为字符串值。

我想知道如何根据该列的内容使用具有有效数据类型的列来复制我的数据表。

1 个答案:

答案 0 :(得分:0)

在这种情况下,您可以使用typeof枚举类型列表并确定它的类型。 https://msdn.microsoft.com/en-us/library/58918ffs.aspx

例如,你可以这样做:

if (obj1.GetType() == typeof(int)){
    // do something with int
}else if (obj1.GetType() == typeof(string)){
    // do something with string
}

否则,如果它不是一个对象而只是一个值,您可以与is进行比较:

if (myValue is Foo)
    Foo foo = (Foo)myValue;

修改 好的,我犯了一个错误。您必须使用tryParse来实现您的目标。方法基本相同,如果解析成功,则必须循环遍历不同的类型并检查返回值。例如:

int number;

bool result = Int32.TryParse(myString, out number);
if (result)
{
    Console.WriteLine("Converted '{0}' to {1}.", myString, number);         
}