HOW TO:從主控制項中使用資料更新資料來源

更新: 2008 年 7 月

適用於

本主題中的資訊僅適用於指定的 Visual Studio Tools for Office 專案和 Microsoft Office 版本。

文件層級專案

  • Excel 2003

  • Excel 2007

  • Word 2003

  • Word 2007

應用程式層級專案

  • Excel 2007

  • Word 2007

如需詳細資訊,請參閱依應用程式和專案類型提供的功能

您可以將主控制項繫結至資料來源,並以在控制項中對資料所做的變更來更新資料來源。

從 Visual Studio 2008 Service Pack 1 (SP1) 開始,您可以使用應用程式層級專案,將主控制項繫結至資料。如果沒有安裝 SP1,您就只能透過文件層級專案使用主控制項。

這項程序中有兩個主要步驟:

  1. 以控制項中修改的資料更新記憶體中資料來源。一般而言,記憶體中資料來源是 DataSetDataTable,或其他一些資料物件。

  2. 以記憶體中資料來源內變更的資料更新資料庫。這個動作只有在資料來源是連接至後端資料庫 (例如,SQL Server 或 Microsoft Office Access 資料庫) 時適用。

如需主控制項和資料繫結的詳細資訊,請參閱主項目和主控制項概觀將資料繫結至控制項

更新記憶體中資料來源

根據預設,啟用簡單資料繫結的主控制項 (例如,Word 文件上的內容控制項,或是 Excel 工作表上的命名範圍控制項),不會將資料變更儲存至記憶體中資料來源。也就是說,當使用者變更主控制項中的值,並接著移動離開該控制項時,這個控制項中的新值並不會自動儲存到資料來源。

若要將資料儲存到資料來源,您可以撰寫可在執行階段回應特定事件而更新資料來源的程式碼,或是將控制項設定只要控制項中的值一變更就自動更新資料來源。

您不需將 ListObject 變更儲存至記憶體中資料來源。當您將 ListObject 控制項繫結至資料時,ListObject 控制項會自動將變更儲存至記憶體中資料來源,而不需執行其他程式碼。

若要在執行階段更新記憶體中資料來源

  • 呼叫可將控制項繫結至資料來源之 Binding 物件的 WriteValue 方法。

    下列範例會將對 Excel 工作表上 NamedRange 控制項所做的變更儲存到資料來源。這個範例假設您有名為 namedRange1 的 NamedRange 控制項,而且控制項的 Value2 屬性已繫結至資料來源中的欄位。

    Me.NamedRange1.DataBindings("Value2").WriteValue()
    
    this.namedRange1.DataBindings["Value2"].WriteValue();
    

自動更新記憶體中資料來源

您也可以設定控制項,讓它自動更新記憶體中資料來源。在文件層級專案中,您可以使用程式碼或設計工具進行這個動作。在應用程式層級專案中,則必須使用程式碼。

若要使用程式碼將控制項設定成自動更新記憶體中資料來源

  • 使用可將控制項繫結至資料來源之 Binding 物件的 DataSourceUpdateMode 屬性。您可以使用兩種選項來更新資料來源:

    • 若要在驗證控制項時更新資料來源,請將這個屬性設定為 OnValidation

    • 若要在控制項的資料繫結屬性值變更時更新資料來源,請將這個屬性設定為 OnPropertyChanged

      注意事項:

      OnPropertyChanged 選項不適用於 Word 主控制項,因為 Word 不提供文件變更或控制項變更通知。不過,這個選項可以用在 Word 文件上的 Windows Form 控制項。

    下列範例會將 NamedRange 控制項設定為只要控制項中的值一變更就自動更新資料來源。這個範例假設您有名為 namedRange1 的 NamedRange 控制項,而且控制項的 Value2 屬性已繫結至資料來源中的欄位。

    Me.NamedRange1.DataBindings("Value2").DataSourceUpdateMode = _
        DataSourceUpdateMode.OnPropertyChanged
    
    this.namedRange1.DataBindings["Value2"].DataSourceUpdateMode = 
        DataSourceUpdateMode.OnPropertyChanged;
    

若要使用設計工作將控制項設定成自動更新記憶體中資料來源

  1. 在 Visual Studio 中,以設計工具開啟 Word 文件或 Excel 活頁簿。

  2. 按一下您要使其自動更新資料來源的控制項。

  3. 在 [屬性] 視窗中展開 [(DataBindings)] 屬性。

  4. 按一下 [(Advanced)] 屬性旁邊的省略符號按鈕 ()。

  5. 在 [格式化與進階繫結] 對話方塊中,按一下 [資料來源更新模式] 下拉式清單,然後選取下列其中一個值:

    • 若要在驗證控制項時更新資料來源,請選取 [OnValidation]。

    • 若要在控制項的資料繫結屬性值變更時更新資料來源,請選取 [OnPropertyChanged]。

      注意事項:

      [OnPropertyChanged] 選項不適用於 Word 主控制項,因為 Word 不提供文件變更或控制項變更通知。不過,這個選項可以用在 Word 文件上的 Windows Form 控制項。

  6. 關閉 [格式化和進階繫結] 對話方塊。

更新資料庫

如果記憶體中資料來源與某個資料庫具有關聯,您就必須以該資料來源的變更來更新這個資料庫。如需更新資料庫的詳細資訊,請參閱儲存資料概觀HOW TO:使用 TableAdapter 更新資料

若要更新資料庫

  1. 呼叫控制項之 BindingSourceEndEdit 方法。

    在設計階段將資料繫結控制項加入至文件或活頁簿時,就會自動產生 BindingSourceBindingSource 會將控制項連接至專案中的具型別資料集。如需詳細資訊,請參閱 BindingSource 元件概觀

    下列程式碼範例假設專案包含名為 customersBindingSource 的 BindingSource

    Me.CustomersBindingSource.EndEdit()
    
    this.customersBindingSource.EndEdit();
    
  2. 呼叫產生於專案中之 TableAdapter 的 Update 方法。

    在設計階段將資料繫結控制項加入至文件或活頁簿時,就會自動產生 TableAdapterTableAdapter 會將專案中的具型別資料集連接至資料庫。如需詳細資訊,請參閱 TableAdapter 概觀

    下列程式碼範例假設您已連接到 Northwind 資料庫中的 Customers 資料表,而且專案包含名為 customersTableAdapter 的 TableAdapter 以及名為 northwindDataSet 的具型別資料集。

    Me.CustomersTableAdapter.Update(Me.NorthwindDataSet.Customers)
    
    this.customersTableAdapter.Update(this.northwindDataSet.Customers);
    

請參閱

工作

HOW TO:使用 TableAdapter 更新資料

HOW TO:在工作表中捲動資料庫記錄

HOW TO:將資料庫的資料填入工作表

HOW TO:將物件的資料填入文件

HOW TO:將資料庫的資料填入文件

HOW TO:將服務的資料填入文件

概念

將資料繫結至控制項

儲存資料概觀

變更記錄

日期

記錄

原因

2008 年 7 月

加入有關在應用程式層級的增益集中繫結資料的資訊。

SP1 功能變更。