Accueil > Forum > > > > Linq & nullable
Linq & nullable
dimanche 17 mai 2009 à 20:23:01 |
Linq & nullable

Djzlouk
|
Bonjour, Je suis sûr du Linq en ce moment et ca me pose quelques soucis. je suis sur que vous allez savoir comment faire. Voici ma requete linq : var suivi = from c in dao.Users select new { prenomNom = c.Prenom + " " + c.Nom, enregistrement = c.Avenants.Sum(d => d.MontantAffaire), devisEnCours = (from e in dao.Devis where e.DelegueeA == c.DelegueA select e.Montant).Sum(), objectif = c.ObjectifEnregistrement.Value }; Donc, j'ai des sous requetes ou je fait juste des Sum. Malheureusement, ce sont des valeurs qui peuvent etre null. Du coup j'ai ce message : 'La valeur null ne peut pas être assignée à un membre de type System.Decimal, car il s'agit d'un type valeur non nullable.' Comment faire pour ne pas que cela plante et marquer 0 quand c'est null ? Merci des aides
|
|
dimanche 17 mai 2009 à 22:29:02 |
Re : Linq & nullable

Bidou
|
Bonsoir, En principe ça doit marcher "sans rien faire": float?[] points = { null, 0, 92.83F, null, 100.0F, 37.46F, 81.1F }; float? sum = points.AsQueryable().Sum(); Console.WriteLine("Total points earned: {0}", sum); (exemple MSDN)
- Blog- - Site Perso-
|
|
lundi 18 mai 2009 à 07:13:31 |
Re : Linq & nullable

SharpMao
|
Hello,
Je pense qu'une de tes variables enregistrement ou devisEnCours n'est pas nullable. Si une des sommmes ne trouve que des valeurs nulles, elle retournera null aussi. Pour changer ça, tu peux faire un GetValueOrDefault après le Sum, et ça devrait marcher.
Amicalement, SharpMao
"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!" (Coluche / 1944-1986 / Pensées et anecdotes)
|
|
lundi 18 mai 2009 à 10:00:14 |
Re : Linq & nullable

Djzlouk
|
Yop ! C'est exactement ca, toutes les valeurs sont null du coup, il retourne null (ce qui est logique). le GetValueOrDefault me semble donc parfait ! Malheureusement quand je le met apres mon Sum VS me dit : 'cannot resolve symbole GetValueOrDefault' (le controle espace ne connait pas non plus). Alors j'ai cherché si ne n'etait pas ma requete qui sera mal tourné qui fait que cela ne marche pas, mais non, rien à faire. Ca marche pas. Il faut ajouter des references pour que GetValueOrDefault fonctionne ? ou j'ai raté un truc ? Merci :)
|
|
lundi 18 mai 2009 à 11:40:51 |
Re : Linq & nullable

krimog
|
Salut
Une autre solution (système D) consisterait à faire un truc du genre (dans ta requête linq) : var machin = from bidule in source.table select new { monDouble = (bidule.monDouble != null) ? bidule.monDouble.Value : 0 };
Je ne garantis rien, mais ça ne coûte rien d'essayer...
Krimog : while (!(succeed = try())) ; - NON, "LE BAR" n'est PAS un langage de programmation ! -
|
|
lundi 18 mai 2009 à 13:49:02 |
Re : Linq & nullable

Bidou
|
J'ai toujours pas compris le problème... Si je fais: float?[] points = { null, null, null, null, null }; float? sum = points.Sum();
sum = 0, non ?
- Blog- - Site Perso-
|
|
lundi 18 mai 2009 à 14:03:48 |
Re : Linq & nullable

Djzlouk
|
Re, En faite mon probleme c'est plutot : float?[] points = { }; // Donc rien du tout float? sum = points.Sum(); Console.WriteLine(sum); Mais, dans le cas que tu donnes et dans celui que je donne le résultat est bien 0. Cela marche donc tres bien. Mais dans mon vrai cas... ca marche pas. Je vous rappel ma requete : var suivi = from c in dao.Users where c.ObjectifEnregistrement != null select new { prenomNom = c.Prenom + " " + c.Nom, enregistrement = c.Avenants.Sum(d => d.MontantAffaire), devisEnCours = (from e in dao.Devis where e.DelegueeA == c.DelegueA select e.Montant).Sum(), devispondere = (from e in dao.Devis where e.DelegueeA == c.DelegueA select e.MontantPondere).Sum(), objectif = c.ObjectifEnregistrement };
|
|
lundi 18 mai 2009 à 14:04:58 |
Re : Linq & nullable

Djzlouk
|
Désolé, mes messages sont illisible, car ils sont sur une ligne. il faut ajouter des br à la main ?
test !
|
|
lundi 18 mai 2009 à 21:23:48 |
Re : Linq & nullable

Bidou
|
Le mise en page c'est parce que tu utilises un browser un peu exotique!!!? Essayes avec IE ou Firefox, ça doit passer... Pour ton problème, serait bien si tu pouvais mettre un code qui fonctionne pas et qui est facilement testable. Car là tu t'imagines bien que je peux pas tester la requête, donc si tu pouvais fournir quelques objets qu'on puisse facilement tester...
- Blog- - Site Perso-
|
|
lundi 18 mai 2009 à 22:23:57 |
Re : Linq & nullable

Djzlouk
|
(Je suis sous google chrome, je vais tester sous IE8, on va bien voir) Sinon, j'ai trouvé grace à toi Bidou ! (merci :p) Afin de vous donner un exemple, j'ai du regarder de pres la classe linqToSql qui transforme toute ma base de données en objet. Comme j'ai 'bien' configuré ma base avec des elemenst not Null et bien certain objet on hérité de ces parametres et donc ne peuvent pas etre null. Il n'existera donc jamais : float?[] points = { null, null, null, null, null }; Par contre, l'objet ne gere pas : float?[] points = { }; Car il n'a pas le droit d'etre null ! C'est un peu bizarre que cela ne soit pa gérer tout seul ! Du coup, je vais retoucher à toute ma base de données et autoriser le null partout... Ensuite je vais traiter les null grace à GetValueOrDefault. Merci à tous.
|
|
Cette discussion est classée dans : from, in, sum, linq, nullable
Répondre à ce message
Sujets en rapport avec ce message
syntaxe de réquete sum in c# [ par baby85 ]
je veux savoir le syntaxe de la requete sumjé deja fait mais il m afiiche un msge d'erreurstring req = "select sum debit from station ";commen
linq to sql [ par laymouna98 ]
salut à tous je veut ajouter à mon projet un fichier de type LinkObjets, c'est un fichier qui à l'extension .dbml, mais le problème c'est ce modèle n'
Probleme d'ajout avec Linq [ par dordenart_michel ]
Bonjour à tousJ'ai un petit souci concernant l'ajout d'un enregistrement avec LINQ.Voici Mon Morceau de code string strConnection = "Data S
Linq to sql [ par laymouna98 ]
salutj'ai fait un pteit exemple avec linq et sql servermaintenent je veut bien changer la base de données au lieu de sql server en oracleest ce que je
Requetes Linq to Entity [ par Donpi ]
Alors c'est l'histoire d'un manchot qui développe en C# avec linq et qui en a un peu marre que rien ne marche...Le problème est pas très compliqué, j'
PROBLEME LINQ to DATASET URGENT : insérer, modifier, supprime [ par Vince62290 ]
Bonjour à tous, je dois résoudre absolument mon problème cette semaine (fin de mon projet).Comment peut-on insérer, modifier, supprimer une ligne dans
Nhibarnate et base de données oracle [ par laymouna98 ]
Bonjourest ce que quelqu'un a travailler avec nhibernate et une base de données oraclej'ai un problème au niveau de configuration et au niveau de conn
Appeler une fonction C depuis c# [ par bossun ]
Salut, j'essaie désespérément d'appeler une fonction c depuis un programme c#. Ma fonction C est déclarée comme tel :Code :
Problème SELECT SUM avec ExecuteScalar() [ par safir2000 ]
Bonjour,je rencontre un problème avec l'execution d'une requete SUM en C# sur une DB Mysql:deffinition de la connection puis:Connection.Open();string<
comment je ecri text sur in image [ par sidi100 ]
je un image et je text box sur form .je veux quand je ecris text dans text box . je trouverai la text coller sur l`image et peux enrigster l nivou
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|