HOW TO:使用 Windows Form BindingSource 元件建立查閱資料表
更新:2007 年 11 月
查詢資料表是具有資料行的資料表,此資料行會顯示相關資料表中資料錄的資料。在下列程序中,ComboBox 控制項會用來顯示欄位,此欄位具有從父資料表到子資料表的外部索引鍵關聯性 (Relationship)。
若要協助視覺化這兩個資料表和這種關聯性,這裡有父資料表和子資料表的範例:
CustomersTable (父資料表)
CustomerID |
CustomerName |
---|---|
712 |
Paul Koch |
713 |
Tamara Johnston |
OrdersTable (子資料表)
OrderID |
OrderDate |
CustomerID |
---|---|---|
903 |
2004 年 2 月 12 日 |
712 |
904 |
2004 年 2 月 13 日 |
713 |
在這個案例中,其中一個 CustomersTable 資料表會儲存您希望顯示和儲存的實質資訊。但是為了節省空間,資料表會捨棄增加易讀性的資料。另一個資料表 OrdersTable 只包含哪個客戶 ID 編號與哪個訂單日期和訂單 ID 相等的外觀相關資訊。並未提及客戶名稱。
在 ComboBox 控制項 (Windows Form) 控制項上設定四個重要的屬性,以建立查詢資料表。
DataSource 屬性包含這個資料表的名稱。
DisplayMember 屬性包含要顯示為控制項文字 (客戶名稱) 的該資料表的資料行。
ValueMember 屬性包含該資料表中具有儲存資訊 (父資料表中的 ID 編號) 的資料行。
SelectedValue 屬性會依據 ValueMember 提供子資料表的查詢值。
下列程序會示範如何將表單配置成查詢資料表,並繫結資料至查詢資料表上的控制項。若要成功完成程序,如先前所提,您必須擁有具有父資料表和子資料表 (兩者之間要有外部索引鍵關聯性) 的資料來源。
若要建立使用者介面
從 [工具箱] 將 ComboBox 控制項拖曳到表單上。
此控制項會顯示父資料表的資料行。
拖曳其他控制項以顯示子資料表的詳細資料。資料表中的資料格式應該決定您所選擇的控制項。如需詳細資訊,請參閱 依功能區分 Windows Form 控制項。
將 BindingNavigator 控制項拖曳至表單上,這樣能讓您巡覽子資料表中的資料。
若要連接至資料並繫結至控制項
選取 ComboBox,並按一下 [智慧工作提示] 圖像,以顯示 [智慧工作提示] 對話方塊。
選取 [使用資料繫結項目]。
按一下 [資料來源] 下拉式清單方塊旁邊的箭號。如果資料來源之前已經為專案或表單設定過,該資料來源便會出現;否則,請完成下列步驟 (此範例使用 Northwind 範例資料庫的 Customers 和 Orders 資料表,並使用括號加以參考)。
按一下 [加入專案資料來源] 以連接至資料並建立資料來源。
在 [資料來源組態精靈] 歡迎畫面中按 [下一步]。
選取 [選擇資料來源類型] 頁面上的 [資料庫]。
從 [選擇資料連接] 頁上的可用連接清單中,選取資料連接。如果沒有您要的資料連接,請選取 [新增連接],建立新的資料連接。如需詳細資訊,請參閱新增/修改連接對話方塊 (一般)。
按一下 [是,將連接儲存],將連接字串儲存在應用程式組態檔中。
選取要用於應用程式的資料庫物件。在這種情況下,請選取具有外部索引鍵關聯性的父資料表和子資料表 (例如,Customers 和 Orders)。
需要時,請取代預設的資料集名稱。
按一下 [完成]。
在 [顯示成員] 下拉式清單方塊中,選取要在下拉式方塊中顯示的資料行名稱 (例如,ContactName)。
在 [值成員] 下拉式清單方塊中,選取要在子資料表中執行查詢作業的資料行 (例如,CustomerID)。
在 [選取的值] 下拉式清單方塊中,巡覽至 [專案資料來源] 和剛建立的資料集,此資料集包含父資料表與子資料表。選取子資料表的相同屬性,該子資料表是父資料表的「值成員」(例如,Orders.CustomerID)。將會建立適當的 BindingSource、資料集和資料表配接器 (Adapter) 元件,並將它們加入至表單。
繫結 BindingNavigator 控制項至子資料表的 BindingSource (例如,OrdersBindingSource)。
將 ComboBox 和 BindingNavigator 控制項以外的其他控制項繫結至詳細資料欄位,這些欄位是來自您要顯示的子資料表的 BindingSource (例如,OrdersBindingSource)。