我有一个 DataTable 对象并且可以访问它的 Columns 集合。对于此集合的每个项目,我需要确定列的类型并将其作为以下字符串之一返回:'string''number''boolean''date''datetime''timeofday'。
所以我做了如下的事情:
foreach (DataColumn column in table.Columns) {
string colType = DermineColumnType(column);
}
. . . .
string DeterminColumnType(DataColumn column) {
Type sysType = column.DataType
if (sysType == typeof(Boolen)
return "boolean";
else if (sysType == typeof(Decimal) || sysType == typeof(Double) || sysType == typeof(Int32) ...)
return "number";
. . . . . .
else
return "string";
}
问题在于 'date'、'datetime' 和 'timeofday' 值 - 我在 DataColumn 类中找不到任何信息,这使我可以确定该列是否在数据库表中定义为“date”、“time”或“约会时间”。对于所有这些情况,DataColumn 类的 DataType 属性始终返回 System.DateTime 类型。有什么方法可以仅基于 DataColumn 和/或 DataTable 对象获取此信息,而无需执行额外的 SQL 语句?