Valores nulos en objetos DataReader de Visual Studio .NET 2015

Una de las grandes potencialidades de usar el diccionario de datos de las bases de datos, es sin lugar a dudas la optimización de código.

En una de esas estaba construyendo una de las clases que manejan los metadatos de una base de datos, cuando el código empezó a marcarme errores y según la excepción era por la introducción de valores nulos en las variables de uno de los objetos.

Intente como en otras ocasiones aplicar la condición de:

 if (dr.GetString(1)=!null)

{

tablas[cnt].EspaciodeNombres = dr.GetString(1);

} else{

tablas[cnt].EspaciodeNombres = “Null”;

}

Sin embargo como muchas veces nos pasa, pues no funcionó, seguimos con otro intento preguntando por blanco o nulo, un método de string.

 if (string.IsNullOrEmpty(dr.GetString(1)))

{

tablas[cnt].EspaciodeNombres = dr.GetString(1);

} else{

tablas[cnt].EspaciodeNombres = “Null”;

}

Nuevamente no tuvimos éxito, entonces empecé a hacer a “debuggear” el código y fue como me dí cuenta que el dato que traía el datareader no era null, sino una clase llamada DBNull, con esto pregunte “al que todo lo sabe” y fue como encontré estos métodos asociados a preguntar por un valor nulo en una columna que proviene de una tabla de una base de datos. Resolviendo el código de esta manera:

if (!DBNull.Value.Equals(dr[1])) {

tablas[cnt].EspaciodeNombres = dr.GetString(1);

}else
{

tablas[cnt].EspaciodeNombres = “NULL”;

}

Esta entrada tan sencilla, en mi caso, me llevó media mañana, entonces por si hay alguien que le pase igual, pues aquí la pequeña solución.

Seguimos en contacto.

Atte.

Profesor Miguel Araujo.

Página de Microsoft | Developer Network

https://msdn.microsoft.com/es-es/library/system.dbnull(v=vs.110).aspx

Deja un comentario