Asp.net 需要帮助解决SQLDateTime溢出错误吗

Asp.net 需要帮助解决SQLDateTime溢出错误吗,asp.net,Asp.net,有人能帮忙处理这个错误吗? SqlDateTime溢出。必须在1753年1月1日12:00:00 AM和9999年12月31日11:59:59 PM之间 这是我的密码: <DataObjectMethod(DataObjectMethodType.Update)> _ Public Shared Sub UpdateIncident( _ ByVal DateClosed As DateTime, _

有人能帮忙处理这个错误吗?
SqlDateTime溢出。必须在1753年1月1日12:00:00 AM和9999年12月31日11:59:59 PM之间

这是我的密码:

 <DataObjectMethod(DataObjectMethodType.Update)> _
    Public Shared Sub UpdateIncident( _
                                    ByVal DateClosed As DateTime, _
                                    ByVal Description As String, _
                                    ByVal original_IncidentID As Integer, _
                                    ByVal original_ProductCode As String, _
                                    ByVal original_DateOpened As DateTime, _
                                    ByVal original_DateClosed As DateTime, _
                                    ByVal original_Title As String, _
                                    ByVal original_Description As String, _
                                    ByVal IncidentID As Integer, _
                                    ByVal ProductCode As String, _
                                    ByVal DateOpened As DateTime, _
                                    ByVal Title As String)
        Dim con As New SqlConnection(GetConnectionString)
        Dim up As String = "UPDATE Incidents " _
           & "SET DateClosed = @DateClosed, " _
           & "Description = @Description" _
           & "WHERE IncidentID = @original_IncidentID " _
           & "AND ProductCode = @original_ProductCode " _
           & "AND DateOpened = @original_DateOpened " _
           & "AND (DateClosed = @original_DateClosed " _
           & "OR DateClosed IS NULL " _
           & "AND @original_DateClosed IS NULL) " _
           & "AND Title = @original_Title " _
           & "AND Description = @original_Description"
        Dim cmd As New SqlCommand(up, con)
        If DateClosed = #12:00:00 AM# Then
            cmd.Parameters.AddWithValue("DateClosed", DBNull.Value)
        Else
            cmd.Parameters.AddWithValue("DateClosed", DateClosed)
            cmd.Parameters("DateClosed").DbType = DbType.DateTime
        End If
        cmd.Parameters.AddWithValue("Description", Description)
        cmd.Parameters.AddWithValue("original_IncidentID", original_IncidentID)
        cmd.Parameters.AddWithValue("original_ProductCode", original_ProductCode)
        cmd.Parameters.AddWithValue("original_DateOpened", original_DateOpened)
        cmd.Parameters("original_DateOpened").DbType = DbType.DateTime
        If original_DateClosed = #12:00:00 AM# Then
            cmd.Parameters.AddWithValue("original_DateClosed", original_DateClosed)
        Else
            cmd.Parameters.AddWithValue("original_DateClosed", original_DateClosed)
            cmd.Parameters("original_DateClosed").DbType = DbType.DateTime
        End If
        cmd.Parameters.AddWithValue("original_Title", original_Title)
        cmd.Parameters.AddWithValue("original_Description", original_Description)
        con.Open()
        cmd.ExecuteNonQuery()
        con.Close()
    End Sub
_
公共共享子更新事件(_
ByVal DateClosed作为日期时间_
ByVal描述为字符串_
ByVal original_包含为整数_
ByVal original_ProductCode作为字符串_
ByVal original_Date作为DateTime打开_
ByVal original_DateClosed作为日期时间_
ByVal原始标题作为字符串_
ByVal原始描述为字符串_
ByVal包含为整数_
ByVal ProductCode作为字符串_
ByVal date作为DateTime打开_
ByVal标题(作为字符串)
Dim con作为新的SqlConnection(GetConnectionString)
暗显为String=“更新事件”_
&SET DateClosed=@DateClosed_
&“Description=@Description”_
&“其中IncidentID=@original_IncidentID”_
&“和ProductCode=@original_ProductCode”_
&“AND DateOpened=@original_DateOpened”_
&“和(DateClosed=@original_DateClosed”_
&“或DateClosed为空”_
&“且@original_DateClosed为空)”_
&“和标题=@原始标题”_
&“和描述=@原始描述”
Dim cmd作为新的SqlCommand(向上,向上)
如果DateClosed=#12:00:00 AM#那么
cmd.Parameters.AddWithValue(“DateClosed”,DBNull.Value)
其他的
cmd.Parameters.AddWithValue(“DateClosed”,DateClosed)
cmd.Parameters(“DateClosed”).DbType=DbType.DateTime
如果结束
cmd.Parameters.AddWithValue(“说明”,说明)
cmd.Parameters.AddWithValue(“原始包含”,原始包含)
cmd.Parameters.AddWithValue(“原始产品代码”,原始产品代码)
cmd.Parameters.AddWithValue(“原始日期已打开”,原始日期已打开)
cmd.Parameters(“original_DateOpened”).DbType=DbType.DateTime
如果原始日期已关闭=#12:00:00 AM#则
cmd.Parameters.AddWithValue(“original_DateClosed”,original_DateClosed)
其他的
cmd.Parameters.AddWithValue(“original_DateClosed”,original_DateClosed)
cmd.Parameters(“original_DateClosed”).DbType=DbType.DateTime
如果结束
cmd.Parameters.AddWithValue(“原始标题”,原始标题)
cmd.Parameters.AddWithValue(“原始描述”,原始描述)
con.Open()
cmd.ExecuteNonQuery()
con.Close()
端接头

当您有一个尚未设置的日期时间时,会发生这种情况。.NET DateTime.MIN值为“01/01/0001 00:00”,SqlDateTime最小值为1753值。在将数据发送到数据库之前,请确保没有任何日期时间未设置

更新:

在您定义的方法中,添加一些逻辑来查找和修复传递给您的DateTime.MinValue。请接受我的信用证

if(日期时间
SQL Server日期时间数据类型的范围为:1753年1月1日至9999年12月31日

.NET日期时间数据类型的范围为:公元9999年12月31日午夜12:00:00到公元9999年12月31日晚上11:59:59


您可以使用SQL Server 2008的新数据类型:

Hi-Ed。。。谢谢,但问题是,我正在处理的数据库中的一些记录必须保持为空,直到用户登录并在其上设置日期关闭。。。我不知道如何修改我的代码来解释。。。任何想法。。。我是新手!不知道如何修复。。。这是我的第一个ASP类哇!太快按回车键。。。这不是我在这里做的吗。。。请参阅代码:如果DateClosed=#12:00:00 AM#那么cmd.Parameters.AddWithValue(“DateClosed”,DBNull.Value)或者cmd.Parameters.AddWithValue(“DateClosed”,DateClosed)cmd.Parameters(“DateClosed”).DbType=DbType.DateTime2结束,如果。。。仍然得到错误。。。正在使用Visual Studio 2010。。。还有其他想法吗?试过什么?是否将表列更改为datetime2?
if (theDateTime < SqlDateTime.MinValue)
{
    theDateTime = SqlDateTime.MinValue;
}