Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/01/2011, 03:37
Avatar de moNTeZIon
moNTeZIon
 
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Tengo mis dudas respecto a las ventajas de los Nullable Types

Buenos días.
Después de revisar un poco cómo utilizar los Nullable Types, llego a la conclusión de que no me aportan nada nuevo.
Me explico.
En un principio, me entusiasmó la idea, pues pensé que de esta forma podía disponer de un tipo de datos, por ejemplo, Nullable(Of DateTime), que aceptaría como valores tanto fechas como DBNull.Value
Pero cuál es mi sorpresa, que cuando intento asignarle un DBNull.Value obtengo un error en tiempo de diseño. Vamos, que no cuela!
Entonces empiezo a buscar información y me encuentro con que, a pesar de utilizar Nullable Types, uno tiene que preguntar a la variable algo así:
Código VB.NET:
Ver original
  1. Dim miFecha As Nullable(Of DateTime)
  2. [...]
  3. If miFecha.HasValue Then
  4.   dRow("CampoFechaBD") = miFecha
  5. Else
  6.   dRow("CampoFechaBD") = DBNull.Value
  7. End If

Ahí se cayó todo el mito para mi.
Un tipo Nullable, a mi entender debería permitir que yo hiciera algo así:
Código VB.NET:
Ver original
  1. Dim miFecha As Nullable(Of DateTime)
  2. miFecha = DBNull.Value
  3. dRow("CampoFechaBD") = miFecha

En este caso si que me quitaría código de encima el hecho de usar Nullable Types, pero si he de preguntar si tiene valor (HasValue) como en el caso de arriba, ya estamos igual.
Para eso, sigo utilizando el código que vengo usando hasta ahora:
Código VB.NET:
Ver original
  1. Dim miFecha As DateTime
  2. [...]
  3. If Not miFecha Is Nothing Then
  4.   dRow("CampoFechaBD") = miFecha
  5. Else
  6.   dRow("CampoFechaBD") = DBNull.Value
  7. End If

En fin, esta ha sido una de mis primeras experiencias con los Nuyllable Types.
Dejo este hilo abierto para quien pueda aportar información o un punto de vista diferente (o igual) sobre este tema.
Saludos.
__________________
..:: moNTeZIon ::..