Überprüfen Sie, ob die Datumsspalte in der Datentabelle null ist
Frage
Dim dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
Dim dt As DataTable = New DataTable()
dt.Load(dr)
For Each row As DataRow In dt.Rows
Dim dob_str As String = ""
'code to check if row.Field(Of Date)("DOB") is dbnull
'if not dbnull then dob_str = row.Field(Of Date)("DOB")
Next
Wie überprüfe ich, ob die Date
Typspalte für jede Zeile in der DataTable
ist leer?
Ich habe es versucht
If Not row.Field(Of Date)("DOB") = Nothing Then
dob_str = row.Field(Of Date)("DOB")
End If
Und
Dim nullCheck As Boolean = IsDBNull(row.Field(Of Date)("DOB"))
If nullCheck = False Then
dob_str = row.Field(Of Date)("DOB")
End If
aber sie alle führten dazu Cannot cast DBNull.Value to type 'System.DateTime'. Please use a nullable type.
zur Laufzeit.
Lösung
Benutze einen Nullbar Typ
If row.Field(Of Date?)("DOB") IsNot Nothing Then
dob_str = row.Field(Of Date)("DOB")
End If
Oder
If row.Field(Of Date?)("DOB").HasValue Then
dob_str = row.Field(Of Date)("DOB")
End If
Oder verwenden IsNull
If Not row.IsNull("DOB") Then
dob_str = row.Field(Of Date)("DOB")
End If
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow