Laden...

Zuweisung zu einer ComboBox.DataSource klappt nicht wie sie sollte

Erstellt von Harry B. vor 11 Jahren Letzter Beitrag vor 11 Jahren 2.280 Views
H
Harry B. Themenstarter:in
33 Beiträge seit 2009
vor 11 Jahren
Zuweisung zu einer ComboBox.DataSource klappt nicht wie sie sollte

Um mich weiter in C# (VS 2012 Express, SQL Server 2012 Express) einzuarbeiten, sehe ich mir im Augenblick einige Beispiele an und versuche sie nachzuvollziehen.

(1) Dabei habe ich ein erstes Problem mit diesem Beispiel, das ich Schritt für Schritt übernommen habe:

var departmentQuery = from d in schoolContext.Departments.Include("Courses")
                                  orderby d.Name
                                  select d;
...
this.departmentList.DisplayMember = "Name";
this.departmentList.DataSource = ((ObjectQuery)departmentQuery).Execute(MergeOption.AppendOnly);

Beim Ausführen der Zuweisung zur DataSource der ComboBox wird folgende Exeption angezeigt:

Fehlermeldung:
"Das Objekt des Typs "System.Data.Entity.Infrastructure.DbQuery`1[CourseManager.Department]" kann nicht in Typ "System.Data.Objects.ObjectQuery" umgewandelt werden."

Leider weiß ich nicht wirklich, warum die Fehlermeldung kommt, zumal so ein Beispiel doch eigentlich funktionieren sollte.

Gelöst habe ich das dann wie folgt:

//this.departmentList.DataSource = ((ObjectQuery)departmentQuery).Execute(MergeOption.AppendOnly);
this.departmentList.DataSource = departmentQuery.ToList();

(2) Ein weiteres Problem ergibt sich an dieser Stelle:


Department department = (Department)this.departmentList.SelectedItem;

courseGridView.DataSource = department.Courses;
courseGridView.Columns["Department"].Visible = false;

Wenn false zugewiesen werden soll, lautet die Exeption:

Fehlermeldung:
"Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."

Auch das habe ich wie folgt gelöst:


// courseGridView.DataSource = department.Courses;
   courseGridView.DataSource = department.Courses.ToList();

Auch hier würde ich - wenn möglich - um etwas Erläuterung bitten.

Sind meine Lösungen eigentlich ok?

Gruß, Harry B.

Kaum macht man 's richtig, schon funktioniert 's!