Error de conexión MySQL a través de dotnet

programación


Recibo este error El objeto no se puede convertir desde DBNull a otros tipos. al abrir la conexión en asp.net

Lo que he probado:

Intenté cambiar el controlador de red del conector MYSQL NET 8.0 al conector MYSQL NET 8.2.0 pero no funcionó. Antes estaba trabajando bien y ahora vuelve a aparecer el error.

Solución 1

DBNull es un tipo especial: representa un “valor vacío” en la columna que acepta valores NULL de la base de datos. Cuando emite una solicitud SELECT contra la base de datos, cualquier fila coincidente que contenga un valor NULL de SQL se devuelve como una instancia del DB Clase nula[^]

Aunque representa un valor NULL en la base de datos, no es lo mismo que un valor nulo en su lenguaje de codificación; no puede convertirlo directamente a ningún otro tipo.
Sugeriría escribir un método de conversión genérico similar a este:

C#
public static T ConvertDBValue<T>(object o)
    {
    if (o == null || o == DBNull.Value)
        {
        return default(T);
        }
    else
        {
        return (T)o;
        }
    }

Y llámelo para cada valor de base de datos que procese.

コメント

タイトルとURLをコピーしました