Quelle approche est recommandée:est-DBNull.Value nécessaire pour les types nullable comme SqlCommandParameter.Value
void Add(int? value)
{
command.Parameters.Add("@foo").Value = value;
}
ou
void Add(int? value)
{
command.Parameters.Add("@foo").Value = (object)value ?? DBNull.Value;
}
Le code dans votre deuxième exemple ne compile pas - à la place, vous obtenez "Opérateur '??' ne peut pas être appliqué à des opérandes de type 'int?' et 'System.DBNull'. " Pour que cela fonctionne, vous devez convertir la valeur en objet, par ex. '(objet) valeur ?? DBNull.Value; '. –
@Mike Powell: Salut. En effet, vous avez raison. Mon code existant est exactement comme vous l'avez mentionné. J'ai juste oublié de l'écrire correctement. – abatishchev