.net - valores - validar dbnull vb
¿Qué debo usar para comparar DBNull? Usando DBNull.Value o ToString(). IsNullOrEmpty() (4)
Conceptualmente la comparación con DBNull.Value
es la correcta.
También puedes usar :
if (Convert.IsDBNull(dr[0]))
{
}
También puede usar, de lo que no soy un fanático, simplemente porque es una comparación de tipos en lugar de una comparación de valores:
if (dr[0] is DBNull)
{
}
Puedo verificar un DBnull
en una fila de datos usando cualquiera de los métodos.
Ya sea utilizando
if(dr[0][0]==DBNull.Value)
//do somethin
o haciendo
if(dr[0][0].ToString().IsNullOrEmpty())
//do something
En ambos casos obtendré el mismo resultado.
Pero cual es el enfoque correcto y conciso. Lo que fue usará menos recursos.
La forma mas sencilla
if (dr[0][0] == DBNull.Value)
//do somethin
Es perfectamente válido y legible.
Aunque ==
compara las referencias, funciona aquí porque DBNUll.Value
es la única instancia de la clase DBNull
, por lo que todos los valores DBNull
son en realidad esta referencia exacta.
La primera forma es algo correcta. Sin embargo, la forma más aceptada es:
if ( dr[0][0] is DBNull )
Y la segunda forma es definitivamente incorrecta. Si usa la segunda forma, se volverá verdadero en dos casos:
- Tu valor es DBNull
- Tu valor es una cadena vacía
Siempre se usa:
dr[0].IsNull(0)
Suponiendo que los creadores de esta función conocen la mejor manera / la forma más eficiente de comparar ...