Saltar al contenido

El objeto no se puede convertir de DBNull a otros tipos

Nuestro equipo de expertos pasados muchos días de trabajo y recopilación de de información, hallamos la respuesta, esperamos que te sea de utilidad en tu trabajo.

Solución:

Estoy pensando que su parámetro de salida regresa con un valor DBNull. Agregue un cheque para eso como este

var outputParam = dataAccCom.GetParameterValue(IDbCmd, "op_Id");
if(!(outputParam is DBNull))
     DataTO.Id = Convert.ToInt64(outputParam);

Sospecho que la línea

DataTO.Id = Convert.ToInt64(dataAccCom.GetParameterValue(IDbCmd, "op_Id"));

está causando el problema. ¿Es posible que el op_Id el valor se establece en null por el procedimiento almacenado?

Para protegerse contra él, use el Convert.IsDBNull método. Por ejemplo:

if (!Convert.IsDBNull(dataAccCom.GetParameterValue(IDbCmd, "op_Id"))

 DataTO.Id = Convert.ToInt64(dataAccCom.GetParameterValue(IDbCmd, "op_Id"));

else 

 DataTO.Id = ...some default value or perform some error case management

Tienes que comprobar DBNullno null. Además, dos de sus tres ReplaceNull Los métodos no tienen sentido. double y DateTime no son anulables, por lo que comprobarlos para null siempre será false

Agradecemos que quieras favorecer nuestro quehacer ejecutando un comentario y puntuándolo te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *