1

VB.NET で 3 層の Windows Forms DB アプリケーションを使用しています。私はVS2005を使用しています。

DataGridView のテーブルにレコードを表示したいと思います。DB クラスと通信するビジネス クラスに DataSource をバインドすることで、レコードをそのまま表示できます。

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

"Asset" は私のビジネス クラスで、"DB_Asset" は DB にクエリを実行して assetList を返す 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

m_ID_Asset には、DB 内の Asset テーブルの主キーが含まれ、m_XXXXXXXXXID 形式のその他すべてには、DB 内の別のテーブルへの外部キーが含まれます。

したがって、基本的に私が今得ているのは、たくさんの数字を持つ行です。それはまさに 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

ここで経験のある人は何かトリックを持っていますか?

前もって感謝します!

4

1 に答える 1

2

List(Of Asset) がある場合は、基本的にクエリ DB_Asset.GetAssetListOrderByID_Asset を変更するだけで、そこで必要な結合を行い、そのプロパティからの値を assetList に割り当てます。

m_CustomerName As String のようなものを、取得する他のものと一緒に Asset クラスに追加して、データを配置する場所を確保します。

Asset クラスを変更できない場合は、バインドする前にこれらすべての文字列を取得する何かをラップすることをお勧めします。

于 2009-05-08T03:08:46.637 に答える