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

Declaration de variables pour LINQ

4 réponses
Avatar
Don Juan
Bonjour à tous, j'ai ce bout de code:

Dim var1 = From Personal In db1.Data _
Select Personal.Name

Marche bien, mais il me faut seulement déclarer la variable pour l'utiliser
dans un IF ou Case,
quelque chose comme cela:

Dim var1 AS (DataType)
If x=1 then
var1 =From Personal In db1.Data _
Select Personal.Name
Else
var1 =From Personal In db1.DataOld _
Select Personal.Name
End If

Merci d'avance

4 réponses

Avatar
Patrice
Bonjour,

D'une façon générale, placer la souris sur la variable pour voir quel est
son type. Ici cela devrait être IQueryable(Of String) car le select
sélectionne un champ unique de type string...

--
Patrice

"Don Juan" a écrit dans le message de groupe de
discussion :
Bonjour à tous, j'ai ce bout de code:

Dim var1 = From Personal In db1.Data _
Select Personal.Name

Marche bien, mais il me faut seulement déclarer la variable pour
l'utiliser dans un IF ou Case,
quelque chose comme cela:

Dim var1 AS (DataType)
If x=1 then
var1 =From Personal In db1.Data _
Select Personal.Name
Else
var1 =From Personal In db1.DataOld _
Select Personal.Name
End If

Merci d'avance


Avatar
Don Juan
Merci
J'ai un problème, dès que j'utilise cela je n'arrive pas À acceder aux
elements.
Normalement je peux faire cela:

Dim var1 = From Personal In db1.Data _
Select Personal.Name
text1.text = var1.firstordefault.Name

Avec la déclaration Iqueryable je ne peux pas acceder au champ Name (par
example).

Merci d'avance.


"Patrice" <http://www.chez.com/scribe/> wrote in message
news:
Bonjour,

D'une façon générale, placer la souris sur la variable pour voir quel est
son type. Ici cela devrait être IQueryable(Of String) car le select
sélectionne un champ unique de type string...

--
Patrice

"Don Juan" a écrit dans le message de groupe de
discussion :
Bonjour à tous, j'ai ce bout de code:

Dim var1 = From Personal In db1.Data _
Select Personal.Name

Marche bien, mais il me faut seulement déclarer la variable pour
l'utiliser dans un IF ou Case,
quelque chose comme cela:

Dim var1 AS (DataType)
If x=1 then
var1 =From Personal In db1.Data _
Select Personal.Name
Else
var1 =From Personal In db1.DataOld _
Select Personal.Name
End If

Merci d'avance






Avatar
Jérémy Jeanson
Bonjour Don Juan,

As tu bien fais attention à ce que Patrice a écrit, il t'a donné comme
réponse un type généric IQueryable(Of String). Si tu utilise IQuerible
et non pas IQueruable(Of TonType) tu vas inévitablement te retrouver
avec un type objet et non pas avec ton type personnel. Donc tu ne
pourras pas utiliser ses accesseur comme ta propriété Name par exemple.
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Avatar
Patrice
Idem si tu regardes la définition de FirstOrDefault tu verras que cela
retourne directement une chaine car tu as sélectionné une seule colonne :
- si la requête LINQ sélectionne une seule colonne, elle retourne
directement le type de cette colonne
- si la requête LINQ sélectionne plusieurs colonnes, elle retourne un objet
qui contient les différents membres correspondants...

Ici tu peux donc faire directement :

Text1.Text=Var1.FirstOrDefault ' Retourne directement la valeur de la SEULE
colonne sélectionnée

--
Patrice

"Don Juan" a écrit dans le message de groupe de
discussion :
Merci
J'ai un problème, dès que j'utilise cela je n'arrive pas À acceder aux
elements.
Normalement je peux faire cela:

Dim var1 = From Personal In db1.Data _
Select Personal.Name
text1.text = var1.firstordefault.Name

Avec la déclaration Iqueryable je ne peux pas acceder au champ Name (par
example).

Merci d'avance.