共用方式為


如何:為 Windows Form 的 ComboBox、ListBox 或 CheckedListBox 控制項建立查閱資料表

在 Windows Form 上以方便使用的格式來顯示資料,但以對程式更有意義的格式來存放資料,這樣的做法有時候相當實用。 例如,食品的訂單表單可能會在清單方塊中依名稱來顯示功能表項目。 但是,記錄訂單的資料表則會包含代表食品的唯一 ID 編號。 下表將顯示如何存放並顯示食品訂單表單資料的範例。

OrderDetailsTable

OrderID ItemID 數量
4085 12 1
4086 13 3

ItemTable

ID 名稱
12 馬鈴薯
13 雞肉

在此案例中,一個資料表 OrderDetailsTable 會儲存您關心顯示和儲存的實際資訊。 但為節省空間,它是以隱晦的方式來設計的。 另一個資料表 ItemTable 只包含與哪個識別碼相等之外觀相關資訊,以及實際食品訂單無關的資訊。

ItemTable 會透過三個屬性連接到 ComboBoxListBoxCheckedListBox 控制項。 屬性 DataSource 包含這個資料表的名稱。 屬性 DisplayMember 包含您想要顯示在控制項中之資料表的資料行(食品名稱)。 屬性 ValueMember 包含該資料表的資料行,其中包含預存資訊(識別碼號碼)。

OrderDetailsTable 會透過 透過 屬性存取的系結集合 DataBindings 連接到 控制項。 當您將系結物件新增至集合時,會將控制項屬性連接到資料來源中特定資料成員(ID 編號的資料行)( OrderDetailsTable )。 當在控制項中進行選取時,這個資料表就是表單輸入儲存之處。

若要建立查閱資料表

  1. ComboBoxListBoxCheckedListBox 控制項加入表單。

  2. 連接到您的資料來源。

  3. 在兩個資料表之間建立資料關聯。 請參閱 DataRelation 物件 簡介。

  4. 設定下列屬性。 您可以在程式碼或設計工具中設定這些屬性。

    屬性 設定
    DataSource 資料表,其中包含哪個 ID 編號對應於哪個項目的相關資訊。 在上一個案例中,這是 ItemTable
    DisplayMember 想要在控制項中顯示的資料來源資料表之資料行。 在上一個案例中,這是 "Name" (若要在程式碼中設定,請使用引號)。
    ValueMember 包含儲存資訊的資料來源資料表之資料行。 在上一個案例中,這是 "ID" (若要在程式碼中設定,請使用引號)。
  5. 在程序中,呼叫 ControlBindingsCollection 類別的 Add 方法,藉此將控制項的 SelectedValue 屬性繫結至記錄表單輸入的資料表。 您也可以在 [屬性] 視窗中存取控制項的 DataBindings 屬性,而不是在程式碼中 執行此動作。 在先前的案例中,這是 OrderDetailsTable ,且資料行為 "ItemID"

    ListBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID")  
    
    listBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID");  
    

另請參閱