Bonjour,
Je m'essais à Linq depuis quelques jours et après avoir consulter plusieurs exemple c'est intuitivement que j'ai réaliser le code suivant. Le but est que "Status" renvoi soit "Inactif" ou "Actif" si "se.Status" vaut 0 ou 1.
Code C#
se.Code renvoi une string
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 String[] etats = { "Inactif", "Actif" }; var selectEnvironnements = from se in nadc.Environnements select new { Code = se.Code, Category = se.Category, Status = etats[se.Status] }; tblEnvironnement.DataSource = selectEnvironnements; tblEnvironnement.DataBind();
se.Category renvoi une string
se.Status renvoi un int (0 ou 1)
malheureusement ce code me renvoi l'erreur suivante :
Pourtant :Noeud d'expression non reconnu : ArrayIndex
Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.
Détails de l'exception: System.InvalidOperationException: Noeud d'expression non reconnu : ArrayIndex
Erreur source:
Ligne 45 : tblEnvironnement.DataSource = selectEnvironnements;
Ligne 46 : tblEnvironnement.DataBind();
- Si je remplace : Status = etats[se.Status] par Status = se.Status ça me renvoi bien 0 ou 1
- Si je remplace : Status = etats[se.Status] par Status = etats[0] ça me renvoi bien "Inactif"
- Si je remplace : Status = etats[se.Status] par Status = etats[1] ça me renvoi bien "Actif"
Pourquoi dans mon cas cela ne fonctionne pas, et quelle est la meilleur façon de remplacer à la volé une valeur stocké en base de donnée par une autre ?
Merci d'avance pour vos explications.
Partager