0

尝试更新我的 sql 数据库时出现以下错误。

SqlDateTime 溢出必须在 1/1/1753 12:00:00 AM 和 12-31-9999 11:59:59 PM 之间

在 SQL 中,我将 UP_DATE 字段设置为datetime2(0)

下面是我的班级设置。我删除了一些信息以缩短这个问题。

Public Class Riders
Private m_RIDER_NO As Integer
Private m_UP_DATE As Date

Public Property UP_DATE() As Date
    Get
        Return m_UP_DATE
    End Get
    Set(ByVal value As Date)
        m_UP_DATE = value
    End Set
End Property

在我的更新功能代码中:

If IsDate(newRider.UP_DATE) Then
        updateCommand.Parameters.AddWithValue("@NewUP_DATE", newRider.UP_DATE)
 Else
        updateCommand.Parameters.AddWithValue("@NewUP_DATE", DBNull.Value)
End If

现在,如果我将我的类更改为以下它可以正常工作,因为 STRING sql 更新除外。

Private m_UP_DATE As String

Public Property UP_DATE() As String
    Get
        Return m_UP_DATE 
    End Get
    Set(ByVal value As String)
        m_UP_DATE = value
    End Set
End Property
  1. 任何人都知道这是否可以例外,或者我以后会遇到问题。
  2. 当我在 VB 中将 UP_DATE 字段设置为字符串并在 sql 中设置为 datetime2(0) 时,为什么要使用 sql 除了更新。
4

1 回答 1

0

使用 .NET 字符串作为日期是避免Date数据类型的默认日期问题的好方法。SQL Server 将接受它可以转换的任何数据类型,而不会导致数据丢失。将字符串转换为日期没有问题。

于 2013-02-23T22:18:36.100 回答