如何在C#中识别PostgreSQL间隔类型?

时间:2014-12-10 15:11:21

标签: postgresql

我有一个使用VS 2012用C#编写的应用程序,需要在运行时确定PostgreSQL查询结果中包含的数据类型。例如,设置命令对象以执行“select * from my_table”。对于返回的阅读器中的每个字段,将一行写入文件,最终看起来像这样:

my_table.field1 is an integer
my_table.field2 is a real
my_table.field3 is a timestamp

问题来自包含间隔的字段。使用最新的PostgreSQL ODBC驱动程序和NPGSQL,读取包含间隔的字段,就好像它包含文本一样。我可以使用TimeSpan.Parse()方法来查看字段中的数据是否可以映射到TimeSpan,但这感觉就像违反了基本的数据库原则。有没有办法让C#应用程序直接确定DataReader对象中包含的字段是否为interval类型?

1 个答案:

答案 0 :(得分:0)

此为时已晚,但您始终可以使用DbDataReader.GetTypeName()来获取数据库类型的名称。