C #: Comment définir ComboBox Vitemember de la requête LINQ
-
14-11-2019 - |
Question
ok donc j'ai comboBox Whos DataSource sont les résultats d'une requête LINQ
//load QA names
var qaNames =
from a in db.LUT_Employees
where a.position == "Supervisor" && a.department == "Quality Assurance"
select new { a, Names = a.lastName + ", " + a.firstName };
cboQASupervisor.DataSource = qaNames;
cboQASupervisor.DisplayMember = "Names";
Le problème que j'ai eu lorsque j'essaie d'ajouter la ligne de code suivante
cboQASupervisor.ValueMember = "ID";
Je reçois une erreur sur l'exécution que il ne pouvait pas lancer le type anonyme. Comment puis-je résoudre ce problème?
Correction:
L'erreur est:
ne peut pas se lier au nouveau membre de la valeur. Nom du paramètre: valeur
La solution
You specify ID as the value field, but you don't have ID property in your anonymous type.
Assuming you have ID in your LUT_Employees object:
var qaNames = (
from a in db.LUT_Employees
where a.position == "Supervisor" && a.department == "Quality Assurance"
select new { a.ID, Names = a.lastName + ", " + a.firstName })
.ToList();
cboQASupervisor.DataSource = qaNames;
cboQASupervisor.DisplayMember = "Names";
cboQASupervisor.ValueMember = "ID";
Autres conseils
You can try this:
var qaNames =
from a in db.LUT_Employees
where a.position == "Supervisor" && a.department == "Quality Assurance"
select new { Id = a.ID, Names = a.lastName + ", " + a.firstName };
cboQASupervisor.DataSource = qaNames.ToList();
cboQASupervisor.DisplayMember = "Names";
cboQASupervisor.ValueMember = "Id";
Add .ToList()
to your code in the datasource line.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow