逐步解說:在 Windows Form 之間傳遞資料
此逐步解說將提供逐步的指示,讓您瞭解如何將一個表單中的資料傳遞到另一個表單。 使用一個 Northwind 表單中的客戶和訂單資料表將可讓使用者選取客戶,且第二個表單將會顯示所選客戶的訂單。 此逐步解說將示範如何建立一個表單上的方法 (此方法可接收來自第一個表單的資料)。
注意事項 |
---|
此逐步解說僅示範在表單之間傳遞資料的一個方法。還有其他選擇可以將資料傳遞至表單,其中包括:建立第二個建構函式來接收資料,或建立公用屬性,並使用第一個表單的資料加以設定。 |
逐步解說將說明的工作包括:
建立新的 [Windows 應用程式] 專案。
利用資料來源組態精靈建立和設定資料集。
選取當從 [資料來源] 視窗拖曳項目時,要在表單上建立的控制項。 如需詳細資訊,請參閱 HOW TO:設定從資料來源視窗拖曳時要建立的控制項。
從 [資料來源] 視窗將項目拖曳至表單上,即可建立資料繫結控制項。
建立含有資料格的第二個表單,以便顯示資料。
建立 TableAdapter 查詢,擷取特定客戶的訂單。
在表單之間傳遞資料。
必要條件
若要完成這個逐步解說,您需要:
- Northwind 範例資料庫的存取權。 如需詳細資訊,請參閱 HOW TO:安裝範例資料庫。
建立 Windows 應用程式
若要建立新的 Windows 專案
從 [檔案] 功能表中,建立新專案。
將專案命名為 PassingDataBetweenForms。
選取 [Windows Form 應用程式],然後按一下 [確定]。 如需詳細資訊,請參閱開發用戶端應用程式。
隨即建立 PassingDataBetweenForms 專案,並將其加入至 [方案總管]。
建立資料來源
若要建立資料來源
按一下 [資料] 功能表上的 [顯示資料來源]。
在 [資料來源] 視窗中,選取 [加入新資料來源],以啟動 [資料來源組態精靈]。
請選取 [選擇資料來源類型] 頁面上的 [資料庫],再按 [下一步]。
在 [選擇資料庫模型] 頁面上,確認已指定 [資料集],再按 [下一步]。
在 [選擇資料連接] 頁上,執行下列其中一項:
如果下拉式清單中有提供 Northwind 範例資料庫的資料連接,請選取這個資料連接。
-或-
選取 [新增連接],啟動 [新增/修改連接] 對話方塊。 如需詳細資訊,請參閱新增/修改連接對話方塊 (一般)。
如果資料庫需要密碼,且已啟用加入敏感性資料的選取,請選取此選項,然後按一下 [下一步]。
按一下 [將連接字串儲存到應用程式組態檔] 頁面上的 [下一步]。
在 [選擇您的資料庫物件] 頁面上,展開 [資料表] 節點。
選取 [Customers] 和 [Orders] 資料表,再按一下 [完成]。
[NorthwindDataSet] 會加入專案中,且 [Customers] 和 [Orders] 資料表會出現在 [資料來源] 視窗中。
建立第一個表單 (Form1)
您可以建立已繫結資料的資料格 (DataGridView 控制項),其方式是將 [Customers] 節點從 [資料來源] 視窗拖曳到表單上。
若要在表單上建立已繫結資料的資料格
從 [資料來源] 視窗,將 [Customers] 主節點拖曳至 [Form1]。
DataGridView 以及用於巡覽資料錄的工具區域 (BindingNavigator) 會出現在 [Form1] 上。 NorthwindDataSet、CustomersTableAdapter、BindingSource 和 BindingNavigator 則會出現在元件匣中。
建立第二個表單 (Form2)
若要建立第二個表單,將資料傳給它
選取 [專案] 功能表上的 [加入 Windows Form]。
保留預設名稱 [Form2],再按一下 [加入]。
從 [資料來源] 視窗,將主要 [Orders] 節點拖曳至 [Form2]。
DataGridView 以及用於巡覽資料錄的工具區域 (BindingNavigator) 會出現在 [Form2] 上。 NorthwindDataSet、CustomersTableAdapter、BindingSource 和 BindingNavigator 則會出現在元件匣中。
從元件匣刪除 [OrdersBindingNavigator]。
[OrdersBindingNavigator] 會從 [Form2] 上消失。
將 TableAdapter 查詢加入至 Form2,載入 Form1 上選定客戶的訂單
若要建立 TableAdapter 查詢
按兩下 [方案總管] 中的 [NorthwindDataSet.xsd] 檔。
以滑鼠右鍵按一下 [OrdersTableAdapter],並選取 [加入查詢]。
保留預設選項 [使用 SQL 陳述式],再按一下 [下一步]。
保留預設選項 [傳回資料列的 SELECT],再按一下 [下一步]。
將 WHERE 子句加入至查詢,以根據 CustomerID 傳回 Orders。 查詢應該如下所示:
SELECT OrderID, CustomerID, EmployeeID, OrderDate, RequiredDate, ShippedDate, ShipVia, Freight, ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode, ShipCountry FROM Orders WHERE CustomerID = @CustomerID
注意事項 驗證資料庫的參數語法是否正確。例如,在 Microsoft Access 中,WHERE 子句應該看起來像:WHERE CustomerID = ?。
按一下 [下一步]。
在 [填入 DataTable] 的 [方法名稱] 中,輸入 FillByCustomerID。
清除 [傳回 DataTable] 選項,再按一下 [下一步]。
按一下 [完成]。
在 Form2 上建立方法,將資料傳給它
若要建立方法,將資料傳給它
以滑鼠右鍵按一下 [Form2],並選取 [檢視程式碼],即可在 [程式碼編輯器] 中開啟 [Form2]。
將下列程式碼加入至 Form2 中 Form2_Load 方法之後:
Friend Sub LoadOrders(ByVal CustomerID As String) OrdersTableAdapter.FillByCustomerID(NorthwindDataSet.Orders, CustomerID) End Sub
internal void LoadOrders(String CustomerID) { ordersTableAdapter.FillByCustomerID(northwindDataSet.Orders, CustomerID); }
在 Form1 上建立方法,傳遞資料並顯示 Form2
若要建立方法,將資料傳遞至 Form2
在 Form1 中,以滑鼠右鍵按一下 Customer 資料格,然後按一下 [屬性]。
在 [屬性] 視窗中,按一下 [事件]。
按兩下 [CellDoubleClick] 事件。
程式碼編輯器隨即開啟。
更新方法定義使其符合下列範例:
Private Sub CustomersDataGridView_DoubleClick() Handles CustomersDataGridView.DoubleClick Dim SelectedRowView As Data.DataRowView Dim SelectedRow As NorthwindDataSet.CustomersRow SelectedRowView = CType(CustomersBindingSource.Current, System.Data.DataRowView) SelectedRow = CType(SelectedRowView.Row, NorthwindDataSet.CustomersRow) Dim OrdersForm As New Form2 OrdersForm.LoadOrders(SelectedRow.CustomerID) OrdersForm.Show() End Sub
private void customersDataGridView_DoubleClick(object sender, EventArgs e) { System.Data.DataRowView SelectedRowView; NorthwindDataSet.CustomersRow SelectedRow; SelectedRowView = (System.Data.DataRowView)customersBindingSource.Current; SelectedRow = (NorthwindDataSet.CustomersRow)SelectedRowView.Row; Form2 OrdersForm = new Form2(); OrdersForm.LoadOrders(SelectedRow.CustomerID); OrdersForm.Show(); }
執行應用程式
若要執行應用程式
按下 F5 執行應用程式。
按兩下 [Form1] 中的客戶資料錄,即可開啟包含該客戶之訂單的 [Form2]。
後續步驟
根據應用程式的需求而定,您在表單之間傳遞資料後可能還會想執行幾個步驟。 您可以對這個逐步解說進行加強的部分包括:
編輯資料集,以加入或移除資料庫物件。 如需詳細資訊,請參閱 HOW TO:編輯資料集。
加入將資料存回資料庫的功能。 如需詳細資訊,請參閱 HOW TO:將資料集變更儲存至資料庫。
請參閱
概念
將 Windows Form 控制項繫結至 Visual Studio 中的資料