逐步解說:使用快取資料集來建立主從式關聯
更新:2007 年 11 月
適用於 |
---|
本主題中的資訊僅適用於指定的 Visual Studio Tools for Office 專案和 Microsoft Office 版本。 專案類型
Microsoft Office 版本
如需詳細資訊,請參閱依應用程式和專案類型提供的功能。 |
這個逐步解說示範如何在工作表上建立主從式 (Master/Detail) 關聯,以及如何快取資料,使得此方案可以離線使用。
在瀏覽這份逐步解說期間,您將了解如何:
將控制項加入至工作表
在工作表中設定要快取的資料集
加入程式碼,以啟用捲動資料錄的功能
測試您的專案
注意事項: |
---|
在下列指示的某些 Visual Studio 使用者介面項目中,您的電腦可能會顯示不同的名稱或位置:您所擁有的 Visual Studio 版本和使用的設定決定了這些項目。如需詳細資訊,請參閱 Visual Studio 設定。 |
必要條件
若要完成這個逐步解說,您將需要:
Visual Studio Tools for Office (Visual Studio 2008 Professional 和 Visual Studio Team System 的選擇性元件)。
Microsoft Office Excel 2003 或 Microsoft Office Excel 2007。
Northwind SQL Server 範例資料庫的存取權。資料庫可以位於開發電腦或是伺服器上。
從 SQL Server 資料庫讀取及寫入該資料庫的使用權限
建立新專案
在這個步驟中,您將會建立一個 Excel 活頁簿專案。
若要建立新的專案
- 使用 Visual Basic 或 C#,建立名為 My Master-Detail 的 Excel 活頁簿專案。請確定已選取 [建立新文件]。如需詳細資訊,請參閱 HOW TO:建立 Visual Studio Tools for Office 專案。
Visual Studio 會在設計工具中開啟新的 Excel 活頁簿,並將 My Master-Detail 專案加入至 [方案總管]。
建立資料來源
請使用 [資料來源] 視窗,將具型別資料集加入您的專案。
若要建立資料來源
如果看不到 [資料來源] 視窗,請按一下 [資料] 功能表上的 [顯示資料來源]。
按一下 [加入新資料來源],啟動 [資料來源組態精靈]。
選取 [資料庫],再按一下 [下一步]。
選取與 Northwind 範例 SQL Server 資料庫的資料連接,或使用 [新增連接] 按鈕加入新的連接。
在選取或建立連接後,請按 [下一步]。
如果已經選取,請清除儲存連接的選項,然後按一下 [下一步]。
在 [資料庫物件] 視窗中,展開 [資料表] 節點。
選取 [訂單] 資料表和 [訂貨明細] 資料表。
按一下 [完成]。
精靈會將這兩個資料表加入至 [資料來源] 視窗,也會將具型別資料集加入至 [方案總管] 中可以看得到的專案。
將控制項加入至工作表
在這個步驟中,您會將已命名的範圍、清單物件和兩個按鈕加入至第一個工作表。首先,請從 [資料來源] 視窗加入已命名的範圍和清單物件,使它們自動繫結至資料來源。接著,再從 [工具箱] 加入按鈕。
若要加入已命名的範圍和清單物件
請確認已經在 Visual Studio 設計工具中開啟 My Master-Detail.xls 活頁簿,並顯示 Sheet1。
開啟 [資料來源] 視窗,然後展開 [訂單] 節點。
選取 [OrderID] 資料行,然後按一下顯示的下拉箭號。
在下拉式清單中,按一下 [NamedRange],然後將 [OrderID] 資料行拖曳到 [A2] 儲存格。
A2 儲存格中會建立一個名為 OrderIDNamedRange 的 NamedRange 控制項。同時,會將名為 OrdersBindingSource 的 BindingSource、資料表配接器,以及 DataSet 執行個體加入至專案。控制項繫結至 BindingSource,繼而又繫結至 DataSet 執行個體。
捲動超過 [訂單] 資料表下的資料行。位在清單底部的是 [訂貨明細] 資料表。由於它是 [訂單] 資料表的子系,因而位在該處。請選取這個 [訂貨明細] 資料表,不要選取與 [訂單] 資料表位於相同層級的資料表,然後按一下顯示的下拉箭號。
在下拉式清單中按一下 [ListObject],然後將 [Order Details] 資料表拖曳到 [A6] 儲存格。
[A6] 儲存格中會建立一個名為 Order_DetailsListObject 的 ListObject 控制項,且該控制項會繫結至 BindingSource。
若要加入兩個按鈕
從 [工具箱] 的 [通用控制項] 索引標籤,將 Button 控制項加入至工作表的 [A3] 儲存格。
這個按鈕的名稱為 Button1。
將另一個 Button 控制項加入至工作表的 [B3] 儲存格。
這個按鈕名為 Button2。
接下來,在文件中標記要快取的資料集。
快取資料集
公開資料集並設定 CacheInDocument 屬性,在文件中標記要快取的資料集。
若要快取資料集
在元件匣中選取 [NorthwindDataSet]。
在 [屬性] 視窗中,將 [Modifiers] 屬性變更為 [Public]。
您必須先公開資料集,才能啟用快取。
將 [CacheInDocument] 屬性變更為 True。
下一個步驟是在按鈕上加入文字,並在 C# 中加入程式碼以連結事件處理常式。
初始化控制項
設定按鈕文字,並加入 Startup 事件期間的事件處理常式。
若要初始化資料和控制項
在 [方案總管] 中,在 [Sheet1.vb] 或 [Sheet1.cs] 上按一下滑鼠右鍵,再按快速鍵功能表上的 [檢視程式碼]。
將下列程式碼加入至 Sheet1_Startup 方法,以設定按鈕的文字。
Me.Button1.Text = "<" Me.Button2.Text = ">"
this.button1.Text = "<"; this.button2.Text = ">";
如果是 C#,請將按鈕 Click 事件的事件處理常式加入至 Sheet1_Startup 方法中。
this.button1.Click += new EventHandler(button1_Click); this.button2.Click += new EventHandler(button2_Click);
加入程式碼以啟用捲動資料錄的功能
將程式碼加入至每個按鈕的 Click 事件處理常式,以便在資料錄中移動。
若要捲動資料錄
為 Button1 的 Click 事件加入事件處理常式,然後加入下列程式碼,以向後瀏覽資料錄:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles Button1.Click Me.OrdersBindingSource.MovePrevious() End Sub
private void button1_Click(object sender, EventArgs e) { this.ordersBindingSource.MovePrevious(); }
為 Button2 的 Click 事件加入事件處理常式,然後加入下列程式碼,以向前瀏覽資料錄:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles Button2.Click Me.OrdersBindingSource.MoveNext() End Sub
private void button2_Click(object sender, EventArgs e) { this.ordersBindingSource.MoveNext(); }
測試應用程式
現在您可以測試活頁簿,確認資料將如預期般顯示,而且可以離線使用該方案。
若要測試資料快取
請按 F5。
確認已命名的範圍和清單物件中會填入資料來源中的資料。
按一下按鈕以捲動部分資料錄。
儲存活頁簿,然後關閉活頁簿和 Visual Studio。
停用資料庫的連接。如果資料庫位於伺服器上,請拔下電腦上的網路線。如果資料庫位於開發電腦上,請停止 SQL Server 服務。
開啟 Excel,然後從 \bin 目錄 (Visual Basic 中的 \My Master-Detail\bin 或 C# 中的 \My Master-Detail\bin\debug) 開啟 [My Master-Detail.xls]。
捲動部分資料錄,確定工作表在中斷連接時是否能正常運作。
重新連接至資料庫。如果資料庫位於伺服器上,請將電腦重新連接至網路。如果資料庫位於開發電腦上,請啟動 SQL Server 服務。
後續步驟
這個逐步解說示範在工作表上建立主從式關聯,以及快取資料集的基本步驟。以下則是接下來的一些工作:
部署方案。如需詳細資訊,請參閱部署 Office 方案。
從另一個專案的快取區擷取資料。如需詳細資訊,請參閱 HOW TO:從伺服器的活頁簿中擷取快取資料。