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
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|