Différence entre DbNull.Valeur et DbNull.De la valeur.ToString()
Je voulais savoir où est le vrai?
if(!string.IsNullOrEmpty(parentID))
cmd.Parameters.Add(new SqlParameter("@ParentSesID", parentID));
else
cmd.Parameters.Add(new SqlParameter("@ParentSesID", DBNull.Value));
OU
if(!string.IsNullOrEmpty(parentID))
cmd.Parameters.Add(new SqlParameter("@ParentSesID", parentID));
else
cmd.Parameters.Add(new SqlParameter("@ParentSesID", DBNull.Value.ToString()));
Vous devez vous connecter pour publier un commentaire.
C'est le passage d'un parentID pour le paramètre @ParentSesID.
est le passage d'un
null
valeur de paramètre.est de passage égale à
string.Empty
, qui n'est pas autorisé numérique, de types de données.est même d'ignorer le paramètre.
Lorsque vous avez besoin de passer
null
de SP que vous avez à passerDBNull.Value
.null
vous êtes ignorant le paramètre etDBNull
dit que vous êtes en passant une valeur null dans la base de donnéesnot null
vous ne pouvez pas passer soitnull
ouDbNull
les deux échouentnull
au lieu deDBNull.Value
? je pense que nous devrions ne jamais utilisernull
puis à droite?Celui-ci:
cmd.Parameters.Add(new SqlParameter("@ParentSesID", DBNull.Value));
est correct, dans le cas où le champ que vous écrivez peut accepterNULL
valeur dans la base de données.Celui-ci:
cmd.Parameters.Add(new SqlParameter("@ParentSesID", DBNull.Value.ToString()));
si le champ est un, dire,VARCHAR
, et n'accepte pas deNULL
, mais vous ne voulez indiquer en quelque sorte une absence de valeur dans ce champ, vous écrivez donc à l'intérieur de votre application spécifique "aucune valeur" valeur. Si votre application sait, si elle fonde cette valeur dans le champ, ce qui signifie: pas de valeur.DBNull.De la valeur.ToString()
sera renvoie la chaîne vide, donc je pense queest une bonne approche et ici, la seule approche
voir ici:
http://ideone.com/iGo1Jh