【发布时间】:2016-04-28 22:06:40
【问题描述】:
我有一个来自数据库的日期,如下图所示。
但是,当我将此值转换为 DateTime-instance 时,我收到如下所示的错误。
但是,在运行代码时,我得到一个 InvalidCastException,返回的值不能转换为 DateTime。
我在 .Net3.5 上使用 VS2010,这就是为什么我想知道为什么需要这个库。
据我所知,在引用的程序集中,我使用的是使用 DLR 的 IronPython。在 .Net 3.5 上,我也可以在引用 Microsoft.Scripting 和 Microsoft.Scripting.Core 时使用它。我想这会以任何方式导致错误。奇怪的是,在执行产生异常的代码时,根本不会调用使用 IronPython 的代码。
编辑:对于那些不敢相信的人:相同的代码有时会从数据库中查询一些行并返回正确的日期。但是在某一时刻,它会引发该异常。
进一步编辑:正如您在第一张图片上看到的row.GetValue 返回一个dynamic,这很奇怪,因为实现此代码的程序集(ArcGIS 10.2 for Desktop)也是使用 .Net 3.5 编写的。此外,当我转到该类型的定义时,我得到object get_Value(int Index); 而不是dynamic。
【问题讨论】:
-
你试过 Convert.ToDateTime() 还是 DateTime.Parse()
-
提供一些代码会很好,尤其是你的 usings 和 refs
-
你尝试了什么?
-
@KrishnaPS 产生同样的错误。
-
这有帮助吗? stackoverflow.com/questions/13566887/… 看来您需要使用 .NET Framework 4 或更高版本。