SqlDataReader Meilleure façon de vérifier les valeurs nulles -sqlDataReader.IsDBNull vs DBNull.Value
Je veux récupérer les valeurs décimales à partir de la base de données et je voudrais savoir qui est la méthode recommandée pour vérifier les valeurs null.
J'ai vu sur MSDN - DBNull.Champ De Valeur que cette case est rarement utilisé.
C'est donc le reader.IsDBNull
le meilleur/le plus efficace pour vérifier les valeurs null?
J'ai créé 2 exemples de méthodes:
public static decimal? GetNullableDecimal(SqlDataReader reader, string fieldName)
{
if (reader[fieldName] == DBNull.Value)
{
return null;
}
return (decimal)reader[fieldName];
}
public static decimal? GetNullableDecimal_2(SqlDataReader reader, string fieldName)
{
if (reader.IsDBNull(reader[fieldName]))
{
return null;
}
return (decimal)reader[fieldName];
}
La plupart du temps, les champs vont être null.
Merci d'avance!
source d'informationauteur diver
Vous devez vous connecter pour publier un commentaire.
Je ne voudrais pas faire trop pris dans la quelle méthode est la meilleure, parce que à la fois le travail et je l'ai utilisé à la fois dans le code avant.
Par exemple, voici une fonction d'utilité, j'ai creusé d'un de mes vieux projets:
Utilisation:
Si vous voulez vérifier la nullité et de les traiter (par opposition à la vérification de la valeur null et alerter le programme qu'il était nul), vous pouvez utiliser le
as
opérateur avec le null-coalescence de l'opérateur??
.Donc dans mon programme
Voici une version simplifiée de @Karl Anderson réponse:
Ou encore:
Directe casting semble très bien fonctionner pour les valeurs null ou non les types nullables.