逐步解說:應用程式層級專案中的複雜資料繫結
更新: 2008 年 7 月
適用於 |
---|
本主題中的資訊僅適用於指定的 Visual Studio Tools for Office 專案和 Microsoft Office 版本。 專案類型
Microsoft Office 版本
如需詳細資訊,請參閱依應用程式和專案類型提供的功能。 |
從 Visual Studio 2008 Service Pack 1 (SP1) 開始,您可以透過應用程式層級專案,將資料繫結至主控制項和 Windows Form 控制項。本逐步解說示範如何在執行階段將控制項加入至 Microsoft Office Excel 工作表,以及將控制項繫結至資料。
這個逐步解說將說明下列工作:
在執行階段將 ListObject 控制項加入至工作表。
建立可將控制項連接至資料集執行個體的 BindingSource。
注意事項: |
---|
您的電腦可能會在下列說明中,以不同名稱或位置顯示某些 Visual Studio 使用者介面項目。您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。如需詳細資訊,請參閱 Visual Studio 設定。 |
必要條件
您需要下列元件才能完成此逐步解說:
Visual Studio Tools for Office (Visual Studio 2008 Professional 和 Visual Studio Team System 的選擇性元件)。
Visual Studio Tools for Office 預設會與列出的 Visual Studio 版本一併安裝。若要查看是否已安裝,請參閱 安裝 Visual Studio Tools for Office。
Excel 2007。
存取附加了 AdventureWorksLT 範例資料庫之執行中的 SQL Server 2005 或 SQL Server 2005 Express 執行個體。您可以從 CodePlex 網站 (本頁面可能為英文) 下載 AdventureWorksLT 資料庫。如需附加資料庫的詳細資訊,請參閱下列主題:
若要使用 SQL Server Management Studio 或 SQL Server Management Studio Express 來附加資料庫,請參閱 HOW TO:附加資料庫 (SQL Server Management Studio)。
若要使用命令列來附加資料庫,請參閱 HOW TO:將資料庫檔案附加至 SQL Server Express。
建立新專案
第一步是建立 Excel 增益集專案。
若要建立新的專案
使用 Visual Basic 或 C#,建立名為從資料庫填入工作表的 [Excel 2007 增益集] 專案。
如需詳細資訊,請參閱 HOW TO:建立 Visual Studio Tools for Office 專案。
Visual Studio 隨即開啟 ThisAddIn.vb 或 ThisAddIn.cs 檔案,並將從資料庫填入工作表專案加入至 [方案總管]。
建立資料來源
請使用 [資料來源] 視窗,將具型別資料集加入您的專案。
若要將具型別資料集加入至專案
在 [資料] 功能表上,按一下 [加入新資料來源]。
[資料來源組態精靈] 隨即開啟。
按一下 [資料庫],然後按 [下一步]。
如果已經有現有的 AdventureWorksLT 資料庫連接,請選擇此連接,再按 [下一步]。
否則,請按一下 [新增連接],並使用 [加入連接] 對話方塊建立新連接。如需詳細資訊,請參閱 HOW TO:建立連接至 SQL Server 資料庫。
在 [將連接字串儲存到應用程式組態檔] 頁面上,按 [下一步]。
在 [選擇您的資料庫物件] 頁面中,展開 [資料表],並選取 [地址 (SalesLT)]。
按一下 [完成]。
AdventureWorksLTDataSet.xsd 檔案隨即加入至 [方案總管]。這個檔案定義下列項目:
名稱為 AdventureWorksLTDataSet 的具型別資料集。這個資料集表示 AdventureWorksLT 資料庫中 地址 (SalesLT) 資料表的內容。
名為 AddressTableAdapter 的 TableAdapter。這個 TableAdapter 可以用來讀取和寫入 AdventureWorksLTDataSet 中的資料。如需詳細資訊,請參閱 TableAdapter 概觀。
在這個逐步解說後面的步驟中,您會用到這兩個物件。
建立控制項並將控制項繫結至資料
在這個逐步解說中,只要使用者一開啟活頁簿,ListObject 控制項便會顯示所選取資料表中的所有資料。這個清單物件會使用 BindingSource,將控制項連接至資料庫。
如需將控制項繫結至資料的詳細資訊,請參閱將資料繫結至控制項。
若要加入清單物件、資料集和資料表配接器
在 ThisAddIn 類別中,宣告下列可顯示 AdventureWorksLTDataSet 資料集之 Address 資料表的控制項。
Private addressListObject As Microsoft.Office.Tools.Excel.ListObject Private adventureWorksDataSet As AdventureWorksLTDataSet Private addressTableAdapter As AdventureWorksLTDataSetTableAdapters.AddressTableAdapter Private addressBindingSource As System.Windows.Forms.BindingSource
private Microsoft.Office.Tools.Excel.ListObject addressListObject; private AdventureWorksLTDataSet adventureWorksDataSet; private AdventureWorksLTDataSetTableAdapters.AddressTableAdapter addressTableAdapter; private System.Windows.Forms.BindingSource addressBindingSource;
在 ThisAddIn_Startup 方法中,將下列程式碼加入以初始化資料集,並以 AdventureWorksLTDataSet 資料集的資訊填入該資料集。
Me.addressTableAdapter = New AdventureWorksLTDataSetTableAdapters.AddressTableAdapter() Me.adventureWorksDataSet = New AdventureWorksLTDataSet() Me.addressTableAdapter.Fill(Me.adventureWorksDataSet.Address) Me.addressBindingSource = New System.Windows.Forms.BindingSource()
this.addressTableAdapter = new AdventureWorksLTDataSetTableAdapters.AddressTableAdapter(); this.adventureWorksDataSet = new AdventureWorksLTDataSet(); this.addressTableAdapter.Fill(this.adventureWorksDataSet.Address); this.addressBindingSource = new System.Windows.Forms.BindingSource();
將以下程式碼加入至 ThisAddIn_Startup 方法中。這會產生可擴充工作表的主項目。如需詳細資訊,請參閱在應用程式層級增益集的執行階段中擴充 Word 文件和 Excel 活頁簿。
Dim worksheet As Excel.Worksheet = DirectCast(Me.Application.ActiveWorkbook.Worksheets(1), Excel.Worksheet) Dim extendedWorksheet As Worksheet = worksheet.GetVstoObject()
Excel.Worksheet worksheet = (Excel.Worksheet)this.Application.ActiveWorkbook.Worksheets[1]; Worksheet extendedWorksheet = worksheet.GetVstoObject();
建立範圍並加入 ListObject 控制項。
Dim cell As Excel.Range = extendedWorksheet.Range("$A$1:$G$5", System.Type.Missing) Me.addressListObject = extendedWorksheet.Controls.AddListObject(cell, "list1")
Excel.Range cell = extendedWorksheet.Range["$A$1:$G$5", System.Type.Missing]; this.addressListObject = extendedWorksheet.Controls.AddListObject(cell, "list1");
使用 BindingSource,將內容控制項繫結至 AdventureWorksLTDataSet。傳入要繫結至清單物件之資料行的名稱。
Me.addressBindingSource.DataSource = Me.adventureWorksDataSet.Address Me.addressListObject.AutoSetDataBoundColumnHeaders = True Me.addressListObject.SetDataBinding( _ Me.addressBindingSource, "", "AddressID", "AddressLine1", _ "AddressLine2", "City", "StateProvince", "CountryRegion", "PostalCode")
this.addressBindingSource.DataSource = this.adventureWorksDataSet.Address; this.addressListObject.AutoSetDataBoundColumnHeaders = true; this.addressListObject.SetDataBinding( this.addressBindingSource, "", "AddressID", "AddressLine1", "AddressLine2", "City", "StateProvince", "CountryRegion", "PostalCode");
測試增益集
當您開啟 Excel 時,ListObject 控制項會顯示 AdventureWorksLTDataSet 資料集之 Address 資料表中的資料。
若要測試增益集
請按 F5。
工作表中便會建立名為 addressListObject 的 ListObject 控制項。同時,也會將名為 adventureWorksLTDataSet 的資料集物件和名為 addressBindingSource 的 BindingSource 加入至專案。ListObject 會繫結至 BindingSource,而後者則繫結至資料集物件。
請參閱
工作
概念
參考
其他資源
變更記錄
日期 |
記錄 |
原因 |
---|---|---|
2008 年 7 月 |
加入主題。 |
SP1 功能變更。 |