为什么TableAdapter会为整个时间戳列填充“1/1/2000”的DataSet?

时间:2009-08-14 19:31:06

标签: .net datetime postgresql timestamp tableadapter

我有一个TableAdapter填充DataSet,由于某种原因,每个选择查询都会为每个选定的行填充值 1/1/2000 的timestamp列。

我首先验证了数据库端的原始值是否完整;大多数是,但由于在发现问题之前以编程方式执行更新查询,因此有几行丢失了原始值。

DataColumn.DataTypeDateType,而PgSQL数据库列类型是timestamp。我最近注意到绑定DataGridView控件中的问题,并通过使用Visual Studio DataSet编辑器中的预览数据选项确认这与我的数据绑定无关。

检查属性和类型,甚至从头开始重新创建TableAdapter之后,我感到非常困惑。我可以做些什么来解决问题和/或诊断原因?

1 个答案:

答案 0 :(得分:0)

框架(例如DataTable属性)不知道表字段的源类型;只有一个 DataType 属性,表明它希望能够将字段值转换为。

框架需要一个转换为DateTime的日期类型,因此需要在查询中转换时间戳值(例如 SELECT timestamp :: date FROM table )或转换将失败,给出 1/1/2000 的值。