使用Insert会在Datetime字段上抛出异常

时间:2009-04-27 02:47:11

标签: asp.net exception datetime subsonic insert

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

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

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

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

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

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

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

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

由于

路易斯

2 个答案:

答案 0 :(得分:0)

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

我在这种情况下遇到了同样的问题,在我的情况下,因为SQL Server“Date”类型的Subsonic类属性被设置为“String”。

请参阅Subsonic 2.2 Generated Property for SQL Server 2008 Date

如果你能证实这一点,我会很感激,并且我会向Subsonic项目问题列表发布一个问题。

答案 1 :(得分:0)

Luis你应该发布一些代码,以便我们可以看到你想要做的事情,但我想我知道这个问题。

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