Dans SQL Server, vous pouvez utiliser le IsNull()
fonction pour vérifier si une valeur est nulle et, le cas échéant, renvoyer une autre valeur. Maintenant, je me demande s'il y a quelque chose de similaire en C #.
Par exemple, je veux faire quelque chose comme:
myNewValue = IsNull(myValue, new MyValue());
au lieu de:
if (myValue == null)
myValue = new MyValue();
myNewValue = myValue;
Merci.
c#
.net
sql-server
isnull
Enfers
la source
la source
this.BinaryExists = vModel.BinaryExists ?? 0;
àthis.BinaryExists = vModel.BinaryExists ?? false;
.Malheureusement, il n'y a pas d'équivalent à l'opérateur de fusion nul qui fonctionne avec DBNull; pour cela, vous devez utiliser l'opérateur ternaire:
la source
(object)oldValue ?? (object)DBNull.Value)
équivaudrait à((object)oldValue == null) ? (object)DBNull.Value : (object)oldValue
ce que le problème aborde dans la solution de Robert Rossney.la source
new MyValue()
sera exécuté même s'ilmyValue
n'est pas nul et qu'il n'est pas obligatoire !!Utilisez la méthode Equals:
la source
Pour travailler avec DB Nulls, j'ai créé un tas pour mes applications VB. Je les appelle Cxxx2 car ils sont similaires aux fonctions Cxxx intégrées de VB.
Vous pouvez les voir dans mon projet d'extensions CLR
http://www.codeplex.com/ClrExtensions/SourceControl/FileView.aspx?itemId=363867&changeSetId=17967
la source
Vous écrivez deux fonctions
Ils fonctionnent très bien
la source
J'ai utilisé la méthode d'extension suivante sur mes types DataRow:
usage:
Je vérifie d'abord l'existence de la colonne car si aucun des résultats de la requête n'a une valeur non nulle pour cette colonne, l'objet DataTable ne fournira même pas cette colonne.
la source
Utilisez les méthodes ci-dessous.
la source
la source
Ceci est considéré à moitié comme une blague, car la question est un peu ridicule.
C'est une méthode d'extension, mais elle étend System.Object, donc chaque objet que vous utilisez a maintenant une méthode IsNull ().
Ensuite, vous pouvez enregistrer des tonnes de code en faisant:
au lieu du super boiteux:
la source
Object
objet réel sur lequel opérer, et si l'objet était Nothing (précisément le cas que vous essayez de tester dans ce Q) il n'y avait aucune instance sur laquelle la classe d'extension fonctionnerait et donc lancer une exception NullObject.Object
dans VB. Voir cette question SO ou ce billet de blog .