Total= (monto_evaluar== null) ? 0 : Convert.ToDecimal(monto_evaluar);
genera el error:Object cannot be cast from DBNull to other types
Resulta que la variable monto_evaluar estaba declarada como object y ademas se obtenía directamente de un Dataset. Pues bien cuando se hacen cosas como estas hay que tener en mente que desde la base de datos en caso de que el dato este nulo, no se devuelve un null si no un tipo dato DBNull. Ellos son hermanos pero no gemelos, significan prácticamente lo mismo pero son tipos de dato diferentes y, adicionalmente, si un objeto es de tipo DBNull no se puede castear (convertir) en ningún otro tipo ni siquiera para comparar y éste es precisamente el error que se nos muestra.
La línea de código debe quedar como sigue:
Total=(monto_evaluar== System.DBNull.Value) ? 0 : Convert.ToDecimal(monto_evaluar);
De esta forma comparamos utilizando el tipo de dato correcto.
2 comments:
Gracias!!!
hola gracias por el apoyo
Publicar un comentario