代码之家  ›  专栏  ›  技术社区  ›  Rob

为什么TableAdapter会为整个时间戳列用“1/1/2000”填充数据集?

  •  1
  • Rob  · 技术社区  · 15 年前

    我有一个 TableAdapter 填充A DataSet ,出于某种原因,每个select查询都用值填充my timestamp列。 1/1/2000 对于每个选定的行。

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

    这个 DataColumn.DataType DateType ,而pgsql数据库列类型为 timestamp . 我最近注意到这个问题 DataGridView 控件,并通过使用 览数据 Visual Studio数据集编辑器中的选项。

    在检查属性和类型之后,甚至重新创建 填充器 从零开始,我很困惑。我可以做些什么来解决问题和/或诊断原因?

    1 回复  |  直到 13 年前
        1
  •  0
  •   Rob    13 年前

    框架(例如 DataTable 属性)不知道表字段的源类型;只有 数据类型 属性,指示它期望能够将字段值转换为什么。

    框架需要一个日期类型来转换为 DateTime ,因此需要在查询中转换时间戳值(例如 从表中选择时间戳::日期 )否则转换将失败,给出的值为 1/1/2000 .