0
je créer cette LINQ pour obtenir toutes les lignes de jointure gauche tabRealisation
tabPrevision
utilisant let
et Group.FirstOrDefault
Vb Linq « La valeur ne peut pas être nulle » en utilisant Group.FirstOrDefault
Dim query1 =
(From r In tabRealisation.AsEnumerable
Group Join p In tabPrevision.AsEnumerable
On r.Field(Of Integer)("code_part") Equals p.Field(Of Integer)("code_part")
Into Group
Let p = Group.FirstOrDefault
Where r.Field(Of Integer)("code_part") = 276
Select an = r.Field(Of Integer)("Annee"),
code_part = r.Field(Of Integer)("code_part"),
Designation_part = r.Field(Of String)("Designation_part"),
NbrR = r.Field(Of Integer?)("UniteVendu"),
EncP = p.Field(Of Double?)("CAEncaissVentePrev"),
RecP = p.Field(Of Double?)("MontantRecouvrementPrev")
).ToList
Mais si p ne contient aucune ligne je reçois l'erreur:
La valeur ne peut pas être nulle. Je l'ai essayé:
RecP = If(p.Field(Of Double?)("MontantRecouvrementPrev").Equals(DBNull.Value)
, 0, p.Field(Of Double?)("MontantRecouvrementPrev")),
mais je reçois le même message d'erreur. toute aide s'il vous plaît
'FirstOrDefault' empêche juste qu'une exception soit levée dans le cas où il n'y a aucun élément à retourner. Vous devez toujours vérifier par la suite si la valeur renvoyée est 'Nothing' –