1

У меня есть трехуровневое приложение БД Windows Forms в VB.NET. Я использую VS 2005.DataGridView и DataSource: Любой способ легко отображать поля, связанные с помощью внешних ключей?

Я хотел бы отображать записи в таблице в DataGridView. Я уже могу просмотреть записи как связыванием DataSource к бизнес-классу, что переговоры с классом БД:

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

«Эссет» мой бизнес-класса, и «DB_Asset» мой DB класс, который запрашивает БД для возврата списка активов.

Теперь актив члены что-то вроде этого:

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 

м _ ID _ Эссет содержит первичный ключ для таблицы активов в БД, а все остальное в виде m_XXXXXXXXXID содержит внешний ключ другой таблицу в БД.

Так что в основном то, что я получаю сейчас, это строки с большим количеством чисел. Это именно то, что в Assets таблице:

ID_Asset CategoryID CustodianID ManufacturerID SignedOutToID 
    1   17   23   14    5 

То, что я хотел бы знать, если есть простой способ отображения текстовых полей, которые я связаны с со всеми этими внешними ключами:

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

Любой, у кого есть опыт, есть какие-нибудь трюки?

Заранее благодарен!

ответ

2

Если у вас есть список (из Asset), то вы в основном просто изменяете свой запрос DB_Asset.GetAssetListOrderByID_Asset, чтобы вы делали необходимые соединения и назначали значения из этого свойства в свойствоList.

Вы хотели бы добавить что-то вроде m_CustomerName As String в свой класс Asset, а также все, что вы будете получать, чтобы у вас было место для размещения данных.

Если вы не можете изменить свой класс активов, вы, вероятно, захотите обернуть что-то вокруг него, которое получит все эти строки для вас, прежде чем вы свяжетесь.

+0

ОК, это перешло мне в голову. Я просто видел страницы на страницах методов и свойств DataGridView и думал, что там может быть волшебный DataGridViewDoWhatJohnWWants. ;) – John

+0

Это сработало хорошо. Благодаря! – John