如何获得任何基本系统对象或基元的类型

时间:2013-08-08 13:22:24

标签: c# sql orm

我正在尝试从SQL查询的结果中智能地填充对象。我循环遍历SQLDataReader的结果并使用GetDataTypeName()来获取任何特定字段中保存的数据类型的字符串表示。

如何在不手动将字符串名称映射到类型的情况下自动获取每个字段的Type。我尝试过使用:

Type.GetType(reader.GetDataTypeName(), true, true)

(注意,区分大小写被忽略)

但是GetDataTypeName()返回诸如“int”之类的基元字符串,并且这些基元会为给定的示例抛出TypeLoadExceptions。

我已经读过GetType()需要一个汇编限定类型名称,所以像DateTime这样的非原始系统类型需要使用“System.DateTime”限定,但只需在“System”命名空间前加上“int” “对于像这样的原始类型没有帮助。

1 个答案:

答案 0 :(得分:3)

这里没有必要解析任何东西;只需使用:

Type type = reader.GetFieldType(columnIndex);