1

Ich habe eine dreistufige Windows Forms DB-Anwendung in VB.NET. Ich verwende VS 2005.DataGridView und DataSource: Kann man Felder anzeigen, die mit Fremdschlüsseln verknüpft sind?

Ich möchte Datensätze in einer Tabelle in einem DataGridView anzeigen. Ich kann bereits die Datensätze angezeigt werden, wie durch die Bindung der Datasource in die Business-Klasse ist, die die DB-Klasse spricht:

Dim assetList as List(Of Asset) 
assetList = DB_Asset.GetAssetListOrderByID_Asset 
AssetDataGridView.DataSource = assetList 

„Anlagen“ mein Business-Class ist, und „DB_Asset“ ist meine DB Klasse, die die DB-Abfragen um AssetList zurückzugeben. Jetzt

hat Vermögens Mitglieder etwas wie folgt aus:

Private m_ID_Asset As Integer 
Private m_CategoryID As Integer 
Private m_CustodianID As Integer 
Private m_ManufacturerID As Integer 
Private m_SignedOutToID As Integer 
Private m_DefaultLocationID As Integer 
Private m_CurrentLocationID As Integer 
Private m_DateAcquired As Date 
Private m_DateEntered As Date 
Private m_EnteredByID As Integer 

m _ ID _ Vermögens enthält den Primärschlüssel für die Asset-Tabelle in der DB, und alles andere von der Form m_XXXXXXXXXID enthält einen Fremdschlüssel zu einem anderen Tabelle in der DB.

Also im Grunde, was ich jetzt bekomme, sind Zeilen mit einer ganzen Menge von Zahlen. Es ist genau das, was in der Tabelle Assets ist:

ID_Asset CategoryID CustodianID ManufacturerID SignedOutToID 
    1   17   23   14    5 

Was Ich mag würde, wissen, wenn es eine einfache Möglichkeit ist die Textfelder anzuzeigen, die ich mit all diesen Fremdschlüssel verknüpft haben:

ID_Asset CategoryName CustodianName Manufacturer SignedOutTo 
    1  Soda - Diet  John  Coca-Cola  Fred 

Jeder mit Erfahrung hier haben irgendwelche Tricks?

Vielen Dank im Voraus!

Antwort

2

Wenn Sie eine Liste (Of Asset) haben, dann ändern Sie im Grunde nur Ihre Abfrage DB_Asset.GetAssetListOrderByID_Asset, so dass Sie Ihre benötigten Joins dort eingeben und die Werte aus dieser Eigenschaft zu AssetList zuweisen.

Sie möchten etwas wie m_CustomerName As String zu Ihrer Asset-Klasse hinzufügen, zusammen mit dem, was Sie sonst noch abrufen, so dass Sie einen Platz für die Daten haben.

Wenn Sie Ihre Asset-Klasse nicht ändern können, möchten Sie wahrscheinlich etwas umschließen, das all diese Zeichenfolgen für Sie vor dem Binden erhält.

+0

OK, das war mir in den Sinn gekommen. Ich habe gerade Seiten auf Seiten von Methoden und Eigenschaften für DataGridView gesehen und dachte, dass dort ein magisches DataGridViewDoWhatJohnWWants enthalten sein könnte. ;) – John

+0

Das hat gut funktioniert. Vielen Dank! – John