【问题标题】:Using Insert throws Exception on Datetime field使用插入在日期时间字段上引发异常
【发布时间】:2009-04-27 02:47:11
【问题描述】:

当尝试使用 Insert CLass 执行插入注释时,我得到以下异常:

将 char 数据类型转换为日期时间数据类型导致日期时间值超出范围。

我正在使用以下全球化设置:

<globalization uiCulture="en-AU" culture="en-AU"/>

我的日期格式是:“dd/mm/YYYY”

我可以使用以下方法解决异常:

ci.Date.HasValue?ci.Date.Value.ToString("yyyy-MM-dd HH:mm:ss"):null

但这很丑,因为...我能做些什么让亚音速选择我的全球化设置吗?

谢谢

路易斯

【问题讨论】:

  • 您使用的是哪个版本的 SubSonic?

标签: asp.net exception datetime subsonic insert


【解决方案1】:

您使用的是 SQLServer 2008“日期”列吗?

我在这种情况下看到了同样的问题,在我的情况下,这是因为 SQL Server“日期”类型的 Subsonic 类属性被设置为“字符串”。

Subsonic 2.2 Generated Property for SQL Server 2008 Date

如果您能确认这一点,我将不胜感激,我会将问题发布到 Subsonic 项目问题列表中。

【讨论】:

    【解决方案2】:

    Luis,您应该发布一些代码,以便我们可以清楚地看到您正在尝试做什么,但我想我知道问题所在。

    如果您传入 Subsonic 无法识别的数据类型,例如 DateTime?(与 Date 相对),则 subsonic 将调用对象的 ToString() 方法并将其 DataType 设置为字符串,这将导致问题你上面提到的。您应该能够只传递 ci.Date.Value 而不必调用自己的 ToString("format") 方法。

    【讨论】:

      猜你喜欢
      • 2020-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 2012-02-28
      • 1970-01-01
      相关资源
      最近更新 更多