Entwickler-Ecke

WinForms - DataGridView mit Informationen aus zwei SQL Tabellen mergen


JohnDyr - Mi 21.11.18 15:13
Titel: DataGridView mit Informationen aus zwei SQL Tabellen mergen
Hallo,

ich habe zwei Tabellen, welche ich in einer DataGridView anzeigen lassen möchte. Folgendes Beispiel veranschaulicht die Beziehung der Tabellen:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
------------
| Customer |
------------
| ID       |
| Name     |
------------



----------------------
|  Order             |
----------------------
|  ID                |
|  CustomerID        |
----------------------


Jetzt habe ich eine DataGridView, welche Informationen aus beiden Tabellen anzeigen soll. Die CustomerID aus der Tabelle Order, entspricht hierbei dem Fremdschlüssel um die Verbindung zur Tabelle Customer herzustellen.

So könnte das endgültige DataGridView aussehen:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
-------------------------------------
| OrderID | CustomerID| CustomerName|
-------------------------------------
| 123     | 323       | Peter     |
| 452     | 420       | Hans      |
| 463     | 323       | Peter     |
| 872     | 323       | Norbert   |
------------------------------------


Jetzt habe ich probiert im DataGridView über "DataGridView Aufgaben" --> "Abfrage hinzufügen" --> "Abfrage Generator" sowas hinzukriegen. Die Abfrage habe ich auch hinbekommen und auch die Ergebnisvorschau sah gut aus. Jedoch wurde beim abschließenden Klick auf "OK" die Fehlermeldung "das von der neuen abfrage zurückgegebene Schema weicht ab" geworfen.

Wie kann ich das sonst noch umsetzen, bzw. was mache ich hier falsch?

Vielen Dank und Grüße


Th69 - Mi 21.11.18 17:19

Alle dort generierten Abfragen müssen dieselben Spalten zurückliefern, s.a. den englischen Beitrag The schema returned by the new query differs from the base query (C#/SQL - VS 2012) [https://stackoverflow.com/questions/26816804/the-schema-returned-by-the-new-query-differs-from-the-base-query-c-sql-vs-20].


JohnDyr - Mi 21.11.18 17:38

Nach langem Nachdenken ist mir eingefallen, dass eigentlich ja eine View das richtige Mittel zur Wahl wäre... ich habe jetzt eine View erstellt und benutze diese einfach im DGV. Damit funktioniert es (bisher zumindest) auch. Ich werde jetzt mal damit weiterarbeiten und gucke ob ich auf Probleme stoße.