Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Requête Linq et concaténation avec NULL

3 réponses
Avatar
Gilbert Tordeur
Bonjour.

Contexte : VB 2008, Webforms, SQL Server 2000
J'utilise une requête Linq en Dataource d'une Lisbox :

Dim ContexteFluide As New FluideDataContext(cnString)
Dim LesClients = From Client In ContexteFluide.Client _
Where Client.FclCodSociete = numSocieteJcEnFrance
Select Case codTypeCritere
Case EjcCodTypeCritereRecherche.AucunCritere
Case EjcCodTypeCritereRecherche.CritereCommencePar
LesClients = From Client In LesClients _
Where Client.FclNom.StartsWith(valeurCritere)
Case EjcCodTypeCritereRecherche.CritereContient
LesClients = From Client In LesClients _
Where Client.FclNom.Contains(valeurCritere)
End Select
Dim MesClients = From Client In LesClients _
Order By Client.FclNom, Client.FclLocalite, Client.FclRue1 _
Select Client.FclCodClient, FclNomLocaliteRue = Client.FclNom &
" - " & Client.FclLocalite & " - " & Client.FclRue1

lbx.DataTextField = "FclNomLocaliteRue"
lbx.DataValueField = "FclCodClient"
lbx.DataSource = MesClients
lbx.DataBind()

Mon problème est le suivant : si le champ FclRue1 est NULL, tout
FclNomLocaliteRue est affiché à blanc, au lieu de contenir
Client.FclNom & " - " & Client.FclLocalite & " - "

Comment corriger ?

Merci d'avance,
Gilbert

3 réponses

Avatar
Bill2
Gilbert Tordeur wrote:

Mon problème est le suivant : si le champ FclRue1 est NULL, tout
FclNomLocaliteRue est affiché à blanc, au lieu de contenir
Client.FclNom & " - " & Client.FclLocalite & " - "

Comment corriger ?

Merci d'avance,
Gilbert



en rajoutant un .toString ?
Je ne connais pas encore Link ... donc je ne fais que proposer.

Sinon, un coup de iif()

... & " - " & iif(not
string.isnullorempty(Client.FclLocalite),Client.FclLocalite ,"") & " - "

(tapé à l'arrache, donc non testé ...)
--
Bill2
Utilisez Process Manager, gestionnaire de processus automatique :
http://www.bill2-software.com/processmanager/
Avatar
Jérémy Jeanson
Bonjour tout le monde,

Oui en Linq il est possible de faire un traitement de faire des
opération codée en Vb comme ce qu'indique Bill2. Très pratique pour les
cast et les tests, donc ce serra utile pour Gilbert.

Par contre il faut faire attention à ce qui est effectivement supporté
par le context de données. Linq to Sql et Entity par exemple ne
supportent pas les mêmes méthodes.
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Avatar
Gilbert Tordeur
J'ai trouvé ceci, et cela fonctionne :

If(Client.FclRue1, "")

Par contre, j'avoue que je ne comprends pas ce If.
Gilbert