Ce n'est pas tout à fait clair ce que vous voulez dire. Si vous essayez de passer une valeur nulle dans un paramètre SQL, vous devez utiliser DBNull.Value
comme valeur pour votre SqlParameter
(ou quel que soit le type que vous utilisez). Si vous voulez représenter un entier nul en C#, utilisez int?
(ou Nullable<int>
- ce sont les mêmes choses).
Vous ne pouvez pas stocker une valeur nulle dans une variable de type de valeur normale non nullable. Les types de valeurs nullables sont toujours des structures, mais ils enveloppent le type non nullable et ajoutent une valeur booléenne pour indiquer s'il s'agit d'une valeur "réelle" ou null. C# ajoute du sucre syntaxique autour, vous permettant d'utiliser le null
littéral pour des missions, différentes conversions, opérateurs etc levés:
int? value = 5;
value = null;
if (value == null)
{
...
}
Si cela ne fonctionne pas, s'il vous plaît nous donner plus d'informations sur exactement ce que vous essayez faire.
EDIT: Bon, il semble que StockBO.Client_id
devrait être de type short?
- mais cela ne permettra pas de régler DBNull.Value
directement. Vous devez utiliser null
pour définir l'ID du client à la valeur null. Chaque fois que vous traduisez entre des objets et des paramètres et des résultats SQL, vous devez effectuer vous-même ce type de conversion. Si vous vous trouvez en train de le faire régulièrement, élaborez des méthodes d'assistance pour vous faciliter la tâche.
Bien sûr, si vous commencez à utiliser LINQ to SQL ou quoi que ce soit de ce genre, vous n'avez pas à vous soucier de DBNull.Value
- Les fournisseurs LINQ ont tendance à prendre directement en charge les types de valeurs NULL.
Je suis très fier de voir ..merci ma j'ai mis à jour ma question s'il vous plaît le faire vérifier – TinTin
@ Ayyappan: J'ai édité ma réponse. –
Merci Mr jon skeet – TinTin