我收到的异常消息很简单:
SQLDateTime溢出必须介于1/1/1753 12:00:00 AM和12/31/9999 12:59:59 PM``
这是使用Linq to SQL的VB 2013代码:
Dim BQCust = (
From c In FinDB.Customers
Where c.Customer_Account = 2000223).FirstOrDefault
FinDB.SubmitChanges(ConflictMode.ContinueOnConflict)
此示例中未进行任何更改。我手动检查了Customer类型的BQCust对象中的所有6个日期时间字段,但没有一个匹配错误条件。除了其中一个之外的所有标记都被标记为允许Nulls。 1的值不是#5/14/2016 9:20:03 AM#。此外,他们都必须有效才能被包含在SQL DB表中,我将从中检索它们。那么什么数据导致了这个异常?
CREATE TABLE [dbo].[Customers](
[RecIdent] [int] IDENTITY(1,1) NOT NULL,
[Customer Account] [decimal](18, 0) NOT NULL,
[Customer Name] [varchar](255) NULL,
[Company] [varchar](255) NULL,
[Customer Status] [varchar](255) NULL,
[Address 1] [varchar](255) NULL,
[Address 2] [varchar](255) NULL,
[City] [varchar](50) NULL,
[State] [varchar](50) NULL,
[Zip Code] [char](10) NULL,
[County] [varchar](50) NULL,
[Date Created] [datetime] NULL,
[Account Type] [varchar](255) NULL,
[Sales Representative] [varchar](50) NULL,
[Renewal Date] [datetime] NULL,
[Account Manager] [varchar](50) NULL,
[Acceptance Date] [datetime] NULL,
[Voided Date] [datetime] NULL,
[Expiration Date] [datetime] NULL,
[LastChanged] [datetime] NOT NULL CONSTRAINT [DF_Customers_LastChanged] DEFAULT (getdate()),
CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED
答案 0 :(得分:0)
请注意,如果您在调试器中使用VoidedDate = NULL (Nothing)
,则表示.NET中为0001-01-01
。
.NET中的DateTime对象没有null
如果您想调试,请尝试将数据选择到数据表中,然后使用完全相同的数据表进行更新。
答案 1 :(得分:0)
我在另一个StackOverflow帖子中发现了一个精明的观察。
SubmitChanges()应用自您上次调用以来的每个更改 SubmitChanges()或创建上下文。你可以确定一切 通过查看db.GetChangeSet()来了解更改。任何日期/时间 任何受影响对象上的列可能是原因 - 例如,if 任何日期时间都是默认的DateTime.MinValue,它是 超出SQL Server的范围。 - mellamokb 4月17日和13日13:11
这是我的问题!!我在获取BQCust的新值之前尝试了提交,但仍然出现错误。我之前从未使用过GetChangeSet方法,但现在我将使用它。谢谢你的帮助!