逐步解說:文件層級專案中的複雜資料繫結
本逐步解說示範使用文件層級專案進行複雜資料繫結的基本概念。您可以將 Microsoft Office Excel 工作表中的多個儲存格,繫結至 Northwind SQL Server 資料庫中的欄位。
**適用於:**本主題中的資訊適用於 Excel 2013 和 Excel 2010 的文件層級專案。如需詳細資訊,請參閱依 Office 應用程式和專案類型提供的功能。
這個逐步解說將說明下列工作:
將資料來源加入至活頁簿專案。
將資料繫結控制項加入至工作表。
將資料變更儲存回資料庫。
注意事項 |
---|
您的電腦可能會在下列說明中,以不同名稱或位置顯示某些 Visual Studio 使用者介面項目。您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。如需詳細資訊,請參閱 Visual Studio 設定。 |
必要條件
您需要下列元件才能完成此逐步解說:
-
包含 Microsoft Office Developer 工具的 Visual Studio 2012 版本。如需詳細資訊,請參閱[設定電腦以開發 Office 方案](bb398242\(v=vs.110\).md)。
Excel 2013 或 Excel 2010。
與具有 Northwind SQL Server 範例資料庫之伺服器的連線。
從 SQL Server 資料庫讀取及寫入該資料庫的使用權限。
建立新專案
第一步是建立 Excel 活頁簿專案。
若要建立新的專案
建立名為 My Complex Data Binding 的 Excel 活頁簿專案。在精靈中選取 [建立新文件]。
如需詳細資訊,請參閱HOW TO:在 Visual Studio 中建立 Office 專案。
Visual Studio 會在設計工具中開啟新的 Excel 活頁簿,並將 My Complex Data Binding 專案加入至 [方案總管]。
建立資料來源
請使用 [資料來源] 視窗,將具型別資料集加入您的專案。
建立資料來源
如果 [資料來源] 視窗中不可見,請顯示它,請在功能表列上,選擇 [檢視]],則 [其他視窗], [資料來源]。
選取 [加入新資料來源] 啟動 [資料來源組態精靈]。
選取 [資料庫],再按一下 [下一步]。
選取與 Northwind 範例 SQL Server 資料庫的資料連接,或使用 [新增連接] 按鈕加入新的連接。
在選取或建立連接後,請按 [下一步]。
如果已經選取,請清除儲存連接的選項,然後按一下 [下一步]。
在 [資料庫物件] 視窗中,展開 [資料表] 節點。
選取 [Employees] 資料表旁的核取方塊。
按一下 [完成]。
精靈會將 [Employees] 資料表加入至 [資料來源] 視窗,也會將具型別資料集加入至 [方案總管] 中可以看得到的專案。
將控制項加入至工作表
工作表將在活頁簿開啟時顯示 [Employees] 資料表。使用者將能對資料進行變更,然後按一下按鈕,將變更儲存回資料庫。
若要自動繫結工作表與資料表,您可以從 [資料來源] 視窗將 ListObject 控制項加入至工作表。若要讓使用者能夠選擇儲存變更,請從 [工具箱] 加入 Button 控制項。
加入清單物件
驗證 [我的複雜資料 Binding.xlsx] 活頁簿在 Visual Studio 中開啟設計工具,並顯示 [Sheet1] 。
開啟 [資料來源] 視窗,然後選取 [Employees] 節點。
按一下顯示的下拉箭號。
選取下拉式清單中的 [ListObject]。
將 [Employees] 資料表拖曳至 [A6] 儲存格。
[A6] 儲存格中會建立一個名為 EmployeesListObject 的 ListObject 控制項。同時,會將名為 EmployeesBindingSource 的 BindingSource、資料表配接器,以及 DataSet 執行個體加入至專案。控制項繫結至 BindingSource,繼而又繫結至 DataSet 執行個體。
若要加入按鈕
- 從 [工具箱] 的 [通用控制項] 索引標籤,將 Button 控制項加入至工作表的 [A4] 儲存格。
下一個步驟是在工作表開啟時將文字加入至按鈕。
初始化控制項
將文字加入至 Startup 事件處理常式中的按鈕。
若要初始化控制項
在 [方案總管] 中,在 [Sheet1.vb] 或 [Sheet1.cs] 上按一下滑鼠右鍵,再按捷徑功能表上的 [檢視程式碼]。
將下列程式碼加入至 Sheet1_Startup 方法,以設定 button 的文字。
Me.Button1.Text = "Save"
this.button1.Text = "Save";
如果是 C#,請加入 Click 事件的事件處理常式至 Sheet1_Startup 方法。
this.button1.Click += new EventHandler(button1_Click);
現在,請加入程式碼,以處理按鈕的 Click 事件。
將變更儲存至資料庫
將對資料所做的任何變更明確存回資料庫之前,這些變更都只存在本機資料集中。
若要將變更儲存至資料庫
為 button 的 Click 事件加入事件處理常式,然後加入下列程式碼,認可對資料集所做的所有變更儲存到資料庫中。
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Button1.Click Try Me.EmployeesTableAdapter.Update(Me.NorthwindDataSet.Employees) Catch ex As System.Data.DataException MessageBox.Show(ex.Message) End Try End Sub
private void button1_Click(object sender, EventArgs e) { try { this.employeesTableAdapter.Update(this.northwindDataSet.Employees); } catch (System.Data.DataException ex) { MessageBox.Show(ex.Message); } }
測試應用程式
現在您可以測試活頁簿,確認資料將如預期般顯示,而且您可以在清單物件中操作該資料。
若要測試資料繫結
按 F5。
確認當活頁簿開啟時,清單物件中會填入來自 [Employees] 資料表的資料。
若要修改資料
按一下 [B7] 儲存格,此儲存格應該包含 [Davolio] 的名稱。
輸入 Anderson 的名稱,然後按 ENTER。
若要修改資料行行首
按一下包含資料行行首 [LastName] 的儲存格。
輸入 Last Name,在兩個字中間包含一個空格,然後按 ENTER。
若要儲存資料
在工作表上按一下 [儲存]。
結束 Excel。當系統提示您儲存所做的變更時,請按一下 [否]。
按 F5,再次執行專案。
清單物件中便會填入來自 [Employees] 資料表的資料。
請注意,[B7] 儲存格中的名稱仍為 Anderson,也就是您所進行並儲存到資料庫的資料變更。資料行行首 [LastName] 則已變更回沒有空格的原始格式,因為資料行行首並未繫結至資料庫,而且您也沒有儲存對工作表所做的變更。
若要加入新資料列
在清單物件內選取儲存格。
新資料列會出現在清單底部,而且新資料列的第一個儲存格中會出現星號 (*)。
在空白資料列中加入下列資訊。
EmployeeID
LastName
FirstName
標題
10
Ito
Shu
Sales Manager
若要刪除資料列
- 以滑鼠右鍵按一下工作表最左邊的數字 [16] (第 16 列),然後按一下 [刪除]。
若要對清單中的資料列進行排序
在清單內選取儲存格。
每個資料行行首中都會顯示箭號按鈕。
按一下 [Last Name] 資料行行首中的箭號按鈕。
按一下 [遞增排序]。
會按照姓氏的字母順序排列資料列。
若要篩選資訊
在清單內選取儲存格。
按一下 [Title] 資料行行首中的箭號按鈕。
按一下 [Sales Representative]。
清單中只會顯示 [Title] 資料行中具有 [Sales Representative] 的資料列。
再按一下 [Title] 資料行行首中的箭號按鈕。
按一下 [(全部)]。
會移除篩選並顯示所有資料列。
後續步驟
這個逐步解說示範將資料庫中資料表繫結至清單物件的基本步驟。以下則是接下來的一些工作:
快取資料,使您能夠離線使用資料。如需詳細資訊,請參閱HOW TO:快取資料供離線使用或於伺服器上使用。
部署方案。如需詳細資訊,請參閱部署 Office 方案。
建立欄位和資料表之間的主從式 (Master/Detail) 關聯。如需詳細資訊,請參閱逐步解說:使用快取資料集來建立主從式關聯。