使用vb.net 2010 pro更新sql数据库时的日期错误

时间:2013-02-23 21:09:23

标签: vb.net

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

  

SqlDateTime over flow必须在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. 为什么在我将UP_DATE字段设置为VB中的字符串以及sql中的datetime2(0)时,除了更新之外还要使用sql。

1 个答案:

答案 0 :(得分:0)

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