关于c#:使日期为空

Make A Date Null

有人能帮我修复我的代码吗?我正试图通过一个除外DTSWO的函数将空值放入SQL Server。

如果我把dtswo设置为Nothing,它会返回12:00:00 am,这会引发一个异常。该字段在SQL Server中可以为空。我只希望它返回一个空字段。

1
2
3
4
5
6
7
8
9
Dim _swoDate As String = udSWOReceivedDateDateEdit.Text
        Dim _dtSWO As Date

        If _swoDate <>"" Then
            _dtSWO = Date.Parse(udSWOReceivedDateDateEdit.Text)
        Else
            'THIS DOESNT WORK
            _dtSWO = Nothing
        End If


您需要使用可为空的类型。默认情况下,日期不将空值(在vb.net中为零)作为值。可为空的类型不接受空(无)。

1
2
3
4
5
6
7
    Dim _dtSWO As Nullable(Of Date)

    If String.IsNullOrEmpty(_swoDate) Then
        _dtSWO = Date.Parse(udSWOReceivedDateDateEdit.Text)
    Else
        _dtSWO = Nothing
    End If

根据注释编辑。


使其可以为空。与可空整数问题的情况相同。

1
2
3
4
5
6
7
8
Dim _swoDate As String = udSWOReceivedDateDateEdit.Text
Dim _dtSWO As Date?

If _swoDate <>"" Then
    _dtSWO = Date.Parse(udSWOReceivedDateDateEdit.Text)
Else
    _dtSWO = Nothing
End If