Credo che la cella dati che sta per null non può essere la ragione del tuo problema. Forse la colonna non esiste, o qualsiasi altro errore è accaduto, o il DataRow stesso è nullo e dovresti gestirlo. Guarda l'eccezione - "sembra saltare in aria" non è una descrizione valida del tuo problema.
Quanto segue spiega, ma risponderà anche alla domanda del titolo per tutti gli altri.
Se il valore della colonna è null, un oggetto System.DBNull
viene restituito, e .ToString()
restituisce una stringa vuota, mentre (string)
o as string
ritorno null
.
Quindi non ha senso controllare l'articolo restituito per ==null
perché non verrà mai valutato su true
.
- Se si accettano stringhe vuote come risultato, il codice è già ottimale, non è necessario gestire il caso
DBNull
.
- Se si desidera ottenere
null
, modificare a as string
.
- Se si desidera gestirlo in qualsiasi altro modo, utilizzare
if (dr.IsNull("FirstName"))
oppure fare ==null
sulla variabile di destinazione dopo il as string
.
fonte
2014-09-12 08:18:15
Le stringhe sono "nullable" per impostazione predefinita, poiché sono tipi di riferimento. –
Stavo parlando della colonna e non del tipo di stringa. –