none
La conversión del tipo 'DBNull' en el tipo 'Decimal' no es válida. RRS feed

  • Pregunta

  • Consulte el final de este mensaje para obtener más detalles sobre cómo invocar a la depuración 
    Just-In-Time (JIT) en lugar de a este cuadro de diálogo.

    ************** Texto de la excepción **************
    System.InvalidCastException: La conversión del tipo 'DBNull' en el tipo 'Decimal' no es válida.
       en Microsoft.VisualBasic.CompilerServices.Conversions.ToDecimal(Object Value, NumberFormatInfo NumberFormat)
       en Microsoft.VisualBasic.CompilerServices.Conversions.ToDecimal(Object Value)
       en WindowsApplication1.form3.b_clie_grab_Click(Object sender, EventArgs e)
       en System.Windows.Forms.Control.OnClick(EventArgs e)
       en System.Windows.Forms.Button.OnClick(EventArgs e)
       en System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       en System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       en System.Windows.Forms.Control.WndProc(Message& m)
       en System.Windows.Forms.ButtonBase.WndProc(Message& m)
       en System.Windows.Forms.Button.WndProc(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       en System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    ************** Depuración JIT **************
    Para habilitar la depuración Just In Time (JIT), el archivo de configuración de esta
    aplicación o equipo (machine.config) debe tener el
    valor jitDebugging establecido en la sección system.windows.forms.
    La aplicación también se debe compilar con la depuración
    habilitada

    Por ejemplo:

    <configuration>
        <system.windows.forms jitDebugging="true" />
    </configuration>

    Cuando esté habilitada la depuración JIT, cualquier excepción no controlada
    se enviará al depurador JIT registrado en el equipo
    en lugar de controlarlo mediante el cuadro de diálogo.

    No se que tengo qué tengo que hacer, ni dónde, ni cómo.

    Desde ya muchas gracias.

    viernes, 30 de octubre de 2015 19:22

Respuestas

  • No se que tengo qué tengo que hacer, ni dónde, ni cómo.

    Tienes que examinar el b_clie_grab_Clickde tu Form3 (se deduce de la traza de pila que te muestra el mensaje). Dentro de esa subrutina, debes tener algo de código que lee información desde la base de datos y lo convierte enuna variable del tipo Decimal. Y falla porque desde la base de datos le llega un NULL, que no se puede convertir en Decimal. Tendrás que revisar el código, meter un "if" para detectar si te lallegado un NULL (que en VB es DBNull.Value), y si eso sucede decidir qué quieres hacer con ese valor, ya que no puedes meterlo en el Decimal.
    viernes, 30 de octubre de 2015 20:05