0
    Private m_ExpirationDate As Nullable(Of DateTime)
Public Property ExpirationDate() As Nullable(Of DateTime)
    Get
        Return m_ExpirationDate
    End Get
    Set(ByVal value As Nullable(Of DateTime))
        m_ExpirationDate = value
    End Set
End Property


Dim rec As New DBML.Staff With _
        {.StaffDesc = m_StaffDesc, _
         .LastName = m_LastName, _
         .FirstName = m_FirstName, _
         .MiddleInit = m_MiddleInit, _
         .Gender = m_Gender, _
         .Certification = m_Certification, _
         .ExpirationDate = m_ExpirationDate, _ ********
         .Active = m_Active, _
         .CEPDNo = m_CEPDNo, _
         .FaNo = m_FaNo, _
         .PIC = m_PIC, _
         .PICValid = m_PICValid, _
         .PICCheckDate = Today(), _
         .PICError = m_PICError}

    _db.Staffs.InsertOnSubmit(rec)

    Try
        _db.SubmitChanges()
        RetVal = rec.StaffID.ToString
    Catch exp As Exception
        RetVal = "Insert Failed:" & exp.Message

    End Try

insertonsubmit を実行すると、m_ExpirationDate の値が null であるため失敗しますが、12:00:00:00AM と表示されます。では、この値をテストするにはどうすればよいですか。null の場合は、「InsertOnSubmit」ステートメントに含めないでください。1/1/1900 のような音声値を渡したくありません。

どんな助けでも大歓迎です。

4

1 に答える 1

0
    Private m_ExpirationDate As Nullable(Of DateTime)
Public Property ExpirationDate() As Nullable(Of DateTime)
    Get
        Return m_ExpirationDate
    End Get
    Set(ByVal value As Nullable(Of DateTime))
        If Not IsDate(value) Or value = #12:00:00 AM# Then
            m_ExpirationDate = Nothing
        Else
            m_ExpirationDate = value
        End If

    End Set
End Property

私がする必要があったのは、プロパティ値が空の値であるか日付ではない場合、プロパティ値を「なし」に設定することでした。

于 2013-03-29T13:00:27.703 に答える