Creo que la nula celda de datos anulada no puede ser el motivo de su problema. Tal vez la columna no exista o se haya producido cualquier otro error, o DataRow en sí mismo sea nulo y usted debería manejar eso. Mire la excepción: "parece explotar" no es una descripción válida de su problema.
Lo siguiente explica eso, pero también responderá la pregunta del título para todos los demás.
Si el valor de la columna es nulo, un objeto System.DBNull
se devuelve, y .ToString()
devuelve una cadena vacía, mientras que (string)
o as string
retorno null
.
Por lo tanto, no tiene sentido comprobar el artículo devuelto para ==null
porque eso nunca se evaluará a true
.
- Si acepta cadenas vacías como resultado, su código ya es óptimo, no es necesario manejar el caso
DBNull
.
- Si quiere obtener
null
, cambie .ToString()
a as string
.
- Si desea manejarlo de otra manera, use
if (dr.IsNull("FirstName"))
o haga ==null
en la variable de destino después del as string
.
Las cadenas son "anulables" por defecto, ya que son tipos de referencia. –
Estaba hablando de la columna y no del tipo de cadena. –