Passer une valeur NULL dans un paramètre à un champ DateTime dans une procédure stockée

J'ai une procédure stockée qui met à jour une base de données en utilisant les paramètres que j'offre, mais je vais avoir de la difficulté à passer d'une valeur NULL à la procédure stockée

Le domaine j'ai besoin de rendre NUL est un champ DateTime

DB.Parameters.AddWithValue("@date", NULL)

Cela me donne l'erreur

'NULL' n'est pas déclaré. 'Null', constant n'est plus pris en charge; l'utilisation du Système".DBNull " au lieu

J'ai donc essayé

DB.Parameters.AddWithValue("@date", DBNull.Value.ToString())

Mais cela produit la valeur 1900-01-01 00:00:00.000 dans la colonne comme c'est le passage d'un "" pour le domaine

J'ai aussi essayé

DB.Parameters.AddWithValue("@date", DBNull.Value)

Mais il produit cette erreur

Valeur de type 'System.DBNull' ne peut pas être converti en "String".

Quelqu'un vous avez des idées?

Qu'advient-il si vous omettre le paramètre complètement?
que outta le faire aussi. J'aimerais voir ce params sa sp attend
Utiliser le .AddWithValue appel avec soin - comment .NET savoir que dans ce cas ce type vos param devrait être, si vous passez dans DBNull.Value ?? Voir LukeH réponse - précis et vous vous éviterez beaucoup de chagrin! (et vraiment dur-à-trouver des bugs, trop!)

OriginalL'auteur Jamie Taylor | 2011-03-03