SqlParameterCollection accepte uniquement les non-null SqlParameter type d'objets, pas DBNull objets

Lorsque j'ajoute le paramètre SQL p de la collection, je reçois un InvalidCastException avec le message du titre du post.

parentId est nullable entier et un nullable entier dans la base de données.

Pourquoi dois-je bénéficier de cette exception et comment puis-je le résoudre?

Je ne suis pas d'utiliser des procédures stockées et j'ai lu la même fils, mais ils ne m'aide pas.

var p = new SqlParameter("ParentId", SqlDbType.Int).Value = parentId ?? (object) DBNull.Value;
cmd.Parameters.Add(p);  
-2 ? pfffhhhhh...
Je ne sais pas pourquoi c'est arriver downvoted. Il est bien question écrite avec le code qui reproduit le problème.
vcsjones de m'aider 🙂

OriginalL'auteur Elisabeth | 2012-11-30