Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/03/2010, 03:23
Avatar de PosProdukcion
PosProdukcion
 
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 19 años, 5 meses
Puntos: 9
Manejo de valores vacíos y tipos

Hola, estoy intentando hacer un tratamiento genérico de tipos y manejo de nulos en VB.NET pero no me apaño muy bien...

Quiero hacer una función, para usar con valores de campos (por ejemplo TextBox1.Text) que devuelva un valor por defecto si el campo esta vacio, p.ej:

IfNull(TextBox1.Text, 0) para un valor numérico o IfNull(TextBox1.Text, "") para un String, etc. Pero me da excepción al intentar convertir un campo vacío en el Integer 0.

Código vb:
Ver original
  1. Function IfNull(ByRef valor As VariantType, ByVal defValor As VariantType)
  2.         Select VarType(valor)
  3.             Case VariantType.String
  4.                 If valor = "" Then
  5.                     Return defValor
  6.                 Else
  7.                     Return valor
  8.                 End If
  9.             Case VariantType.Short
  10.                 If valor = VariantType.Null Then
  11.                     Return defValor
  12.                 Else
  13.                     Return valor
  14.                 End If
  15.             Case Else
  16.                 Return defValor
  17.         End Select
  18.     End Function

He visto este enlace donde proponen el uso de Is DBNull.Value pero me sigue dando excepción

¿Sabéis como resolver este tema o como comparar un valor vacío de un campo de texto con un número sin que de excepción?

Gracias