由于与DateTimeOffset相关问题的无效转换,我从本地环境到开发环境接收到不同的行为。奇怪的是,同样的Web应用程序也在测试环境中,并且正常运行。我收到错误的唯一地方是开发中,但没有测试或我的本地计算机。
错误我收到:
[InvalidCastException: Specified cast is not valid.]
System.Data.SqlClient.SqlBuffer.get_DateTime() +6531011
System.Data.SqlClient.SqlDataReader.GetDateTime(Int32 i) +61
G_C.G_C_CodeGroupData.ReadDBRowForMaint() +765
G_C.G_C_CodeGroupEdit.OnInit(EventArgs e) +341
System.Web.UI.Control.InitRecursive(Control namingContainer) +186
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2098
从C#代码我调用以这种方式从列中检索数据的存储过程:
dr.GetDateTimeOffset(4).ToLocalTime().DateTime.ToString()
另一方面,存储过程只是一个基于id选择记录的select语句。
该特定列的列定义是:
[VAR_CREATE_DATE] [datetimeoffset](7) NULL CONSTRAINT [DF_G_C_CODE_VARIABLE_VAR_CREATE_DATE] DEFAULT (sysdatetimeoffset()),
这可能是一个非常明确的原因,为什么我无法摆脱这个错误,但它现在正在逃避我。我无法看出错误在哪里;或是什么触发它。
PS。本地和测试环境正在寻找相同的数据库和表定义。
谢谢你, N.