Maison > développement back-end > C++ > Comment gérer efficacement les erreurs DBNull.Value lors de la récupération de données d'une base de données ?

Comment gérer efficacement les erreurs DBNull.Value lors de la récupération de données d'une base de données ?

DDD
Libérer: 2025-01-25 10:21:11
original
745 Les gens l'ont consulté

How to Effectively Handle DBNull.Value Errors When Retrieving Data from a Database?

Adressant les valeurs nuls de la base de données: une solution pour "Impossible de lancer un objet de type 'System.dbnull' pour taper 'System.String'"

Les interactions de la base de données conduisent souvent à l'erreur frustrante "Impossible de lancer un objet de type" System.Dbnull "pour taper" System.String "" Erreur. Cela découle de la tentative de convertir la valeur nulle d'une base de données en un type de données spécifique. Ce qui suit démontre une solution robuste:

Tout d'abord, considérez une approche de base:

public string GetCustomerNumber(Guid id)
{
    object accountNumber = DBSqlHelperFactory.ExecuteScalar(connectionStringSplendidmyApp, CommandType.StoredProcedure, "GetCustomerNumber", new SqlParameter("@id", id));

    if (accountNumber == DBNull.Value)
    {
        return string.Empty;
    }
    else
    {
        return accountNumber.ToString();
    }
}
Copier après la connexion

Cette méthode gère efficacement Nulls en renvoyant une chaîne vide. Cependant, une solution plus polyvalente et efficace utilise une fonction générique:

public static T ConvertFromDBVal<T>(object obj)
{
    if (obj == null || obj == DBNull.Value)
    {
        return default(T);
    }
    else
    {
        return (T)obj;
    }
}
Copier après la connexion

Cette fonction générique simplifie le code d'origine à:

return ConvertFromDBVal<string>(accountNumber);
Copier après la connexion

Cette solution élégante offre la sécurité du type et renvoie la valeur par défaut appropriée pour tout type de données, améliorant la lisibilité du code et la maintenabilité. Il s'agit d'une méthode supérieure pour gérer les valeurs nuls récupérées à partir des requêtes de base de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal