2017-03-13 3 views
1

Ich möchte ein DataGridView anzeigen, dessen Daten aus einer Tabelle stammen, und eine zusätzliche Spalte aus einer anderen Tabelle aus der ACCESS-Datenbank hinzufügen.DataGridView von mehreren Quellen in ACCESS anzeigen

Dies ist mein Code:

string PathDB6 = Application.StartupPath + @"\PcStore.ACCDB"; 
OleDbConnection connection6 = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + PathDB6 + ";Persist Security Info=False;"); 
OleDbDataAdapter ada6 = new OleDbDataAdapter("SELECT * FROM CustomersOrdersDetail", connection6); 
DataSet set6 = new DataSet(); 
ada6.Fill(set6, "CustomersOrdersDetail"); 
tabSearchCustomerOrder = new DataTable(); 
tabSearchCustomerOrder = set6.Tables["CustomersOrdersDetail"]; 
dgvCustomerOrderDetail.DataSource = tabSearchCustomerOrder; 
dgvCustomerOrderDetail.Sort(dgvCustomerOrderDetail.Columns["OrderID"], ListSortDirection.Ascending); 
dgvCustomerOrderDetail.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; 

Aber ich weiß nicht, wie eine zusätzliche Spalte aus einer anderen Tabelle auszuwählen, die die Datagridview ich oben erwähnt (dgvCustomerOrderDetail).

Ich verwende OLEDB in C#

danken Ihnen im Voraus.

Meine Tabellen und Felder:

Tabelle Nummer 1: "Die Kunden Bestellungen Detail"

Customers Orders Detail Table fields

Tabelle Nummer 2: "Die Kunden Aufträge"

Customers Orders Table fields

In meinem dgv, ich habe alle Daten der Tabelle "CustomersOrdersDetail", ich möchte die Spalte WorkerApproved hinzufügen vom 2. Tisch dazu.

Antwort

0

Um die zusätzliche Spalte für das DataGridView anzeigen zu können, müssen Sie Ihr SQL entsprechend aktualisieren, um diese andere Spalte zu haben.

Zum Beispiel, wenn man bedenkt, dass Ihre zweite Tabelle eine Tabelle Kunden und Sie wollen als zusätzliche Spalte die E-Mail-Adresse des Kunden anzuzeigen:

string sql = "SELECT CustomersOrdersDetail.*, Customers.Email 
FROM CustomersOrdersDetail INNER JOIN Customers on CustomersOrdersDetail.ID = Customers.ID"; 

Sie lernen mehr über INNER JOIN

Einmal Wenn Sie Ihren Datensatz ausfüllen, sollten Sie die zusätzliche E-Mail-Spalte sehen.

also in Ihrem Fall (nicht geprüft):

string sql = "SELECT CustomersOrdersDetail.*, CustomersOrders.WorkerApproved 
FROM CustomersOrdersDetail INNER JOIN CustomersOrders on 
CustomersOrdersDetail.CustomerID = CustomersOrders.CustomerID AND 
CustomersOrdersDetail.OrderID = CustomersOrders.OrderID"; 
+0

Inner Join: "Kombiniert Datensätze aus zwei Tabellen, wenn es passende Werte in einem gemeinsamen Feld." Ich habe kein gemeinsames Feld, also was kann ich tun? – Kfir

+0

Wenn Sie keine Felder gemeinsam haben, wie können Sie also 2 Datensätze aus 2 verschiedenen Tabellen beziehen. Das ist mir nicht klar, bitte posten Sie die entsprechenden Tabellen und ihre Felder, damit ich Ihnen helfen kann. – ehh

+0

Nicht so, bitte aktualisieren Sie Ihren Beitrag. Listen Sie für jede Tabelle die relevanten Felder auf und geben Sie für jede Tabelle eine kurze Beschreibung an. – ehh

Verwandte Themen