2016-06-21 15 views
0

Auf einem meiner WinForms muss ich ein DataGridView-Steuerelement verwenden, das Daten aus einer DB-Tabelle zeigt. In dieser Tabelle gibt es nur wenige Fremdschlüssel, so dass meine DGV wie folgt aussehen:DataGridView und Werte aus mehreren Tabellen?

Column1 | Column2 | ForeignKey1 | ForeignKey2 | ... 
================================================... 
Text | Text | 1   | 1   | ... 

Gibt es eine Möglichkeit, die Werte zu zeigen, die irgendwie durch Fremdschlüssel referenziert werden?

+0

Was genau wollen Sie erreichen und was meinen Sie mit "referenziert" und wo möchten Sie diese Werte anzeigen? –

+1

Es gibt mehrere Lösungen für eine solche Anforderung. Was ist die Datenquelle des Grids? –

+0

Sie können es tun, indem Sie Ihre Abfrage ändern, durch die Sie die Daten erhalten. Fügen Sie Ihre Abfrage hinzu, damit ich sie ändern konnte –

Antwort

0

Sie können es die folgenden Ansatz:

Lassen Sie Ihre tbl1 hat Spalten:

stu_id (primary key), 
stu_name 

Lassen Sie Ihre tbl2 Spalten:

course_id (primary key), 
course_name 

dann Ihre tbl3 Spalten:

teacher, 
stu_id (foreign key), 
course_id (foreign key) 

Jetzt können Sie die Daten aus tbl3 mit Fremdschlüsseln wie drucken:

select teacher, 
(select stu_name from tbl1 where stu_id=tbl3.stu_id) stu_name , 
(select course_name from tbl2 where course_id=tbl3.course_id) course_name 
from tbl3; 

einfach die Daten aus dem obigen Ansatz erhalten in einem Datatable und geben die GridView Datenquelle.

Außer es gibt andere so viele Möglichkeiten, wie Sie es tun können.