使用主控件的數據更新數據來源
您可以將主控制項繫結至資料來源,並以在控制項中對資料所做的變更來更新資料來源。 這個程序包含兩個主要步驟:
以控制項中修改的資料更新記憶體內部資料來源。 一般而言,記憶體內部資料來源是 DataSet、 DataTable或其他一些資料物件。
以記憶體內部資料來源中變更的資料更新資料庫。 只有在資料來源已連接到 SQL Server 或 Microsoft Office Access 資料庫等後端資料庫時才適用。
如需主控件和數據系結的詳細資訊,請參閱 主專案和主控件概觀 和 將數據系結至 Office 方案中的控件。
適用於: 本主題中的資訊適用於 Excel 和 Word 的文件層級專案和 VSTO 載入宏專案。 如需詳細資訊,請參閱 Office 應用程式 lication 和項目類型所提供的功能。
更新記憶體內部數據源
根據預設,啟用簡單資料繫結的主控制項 (Word 文件上的內容控制項或 Excel 工作表上的具名範圍控制項),不會將資料變更儲存至記憶體內部資料來源。 也就是說,當使用者變更主控制項中的值,並接著移動離開該控制項時,這個控制項中的新值並不會自動儲存至資料來源。
若要將資料儲存至資料來源,您可以撰寫可在執行階段回應特定事件而更新資料來源的程式碼,或是將控制項設定為只要控制項中的值一變更就自動更新資料來源。
您不需要將 ListObject 變更儲存至記憶體內部資料來源。 當您將 ListObject 控制項繫結至資料時, ListObject 控制項會自動將變更儲存至記憶體內部資料來源,而不需要其他程式碼。
在執行階段更新記憶體內部資料來源
呼叫 WriteValue 物件的 Binding 方法,將控制項繫結至資料來源。
下列範例會將對 Excel 工作表上 NamedRange 控制項所做的變更儲存至資料來源。 這個範例假設您有名為 NamedRange 的
namedRange1
控制項,而且控制項的 Value2 屬性已繫結至資料來源中的欄位。
自動更新記憶體內部數據源
您也可以設定控制項,讓它自動更新記憶體內部資料來源。 在文件層級專案中,您可以使用程式碼或設計工具來執行這項作業。 在 VSTO 載入宏專案中,您必須使用程式代碼。
使用程式碼將控制項設定為自動更新記憶體內部資料來源
使用將控件系結至數據源之物件的 System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged 模式 Binding 。 您可以使用兩種選項來更新資料來源:
若要在驗證控件時更新數據源,請將此屬性設定為 System.Windows.Forms.DataSourceUpdateMode.OnValidation。
若要在控件的數據綁定屬性值變更時更新數據源,請將此屬性設定為 System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged。
注意
System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged 選項不適用於 Word 主控件,因為 Word 不提供文件變更或控件變更通知。 不過,這個選項可用於 Word 文件上的 Windows Form 控制項。
下列範例會將 NamedRange 控制項設定為只要控制項中的值一變更就自動更新資料來源。 這個範例假設您有名為 NamedRange 的
namedRange1
控制項,而且控制項的 Value2 屬性已繫結至資料來源中的欄位。
使用設計工具將控制項設定為自動更新記憶體內部資料來源
在 Visual Studio 中,以設計工具開啟 Word 文件或 Excel 活頁簿。
按一下您要自動更新資料來源的控制項。
在 [屬性] 視窗中,展開 [(DataBindings)] 屬性。
按一下 [(進階)] 屬性旁的省略符號按鈕 ()。
在 [格式化與進階繫結] 對話方塊中,按一下 [資料來源更新模式] 下拉式清單,然後選取下列其中一個值:
若要在驗證控制項時更新資料來源,請選取 [OnValidation] 。
若要在控制項的資料繫結屬性值變更時更新資料來源,請選取 [OnPropertyChanged] 。
注意
[OnPropertyChanged] 選項不適用於 Word 主控制項,因為 Word 不提供文件變更或控制項變更通知。 不過,這個選項可用於 Word 文件上的 Windows Form 控制項。
關閉 [格式化與進階繫結] 對話方塊。
更新資料庫
如果資料庫與記憶體內部資料來源相關聯,您必須以對資料來源所做的變更來更新資料庫。 如需更新資料庫的詳細資訊,請參閱使用 TableAdapter 將數據儲存回資料庫和更新數據。
若要更新資料庫
呼叫控制項之 EndEdit 的 BindingSource 方法。
當您在設計階段將資料繫結控制項加入文件或活頁簿時,會自動產生 BindingSource 。 BindingSource 會將控制項連接到專案中的具類型資料集。 如需詳細資訊,請參閱 BindingSource 元件概觀。
下列程式碼範例假設您的專案包含名為 BindingSource 的
customersBindingSource
。Update
在您的專案中呼叫產生的 TableAdapter 方法。當您在設計時間將數據綁定控件新增至檔或活頁簿時,會自動產生 TableAdapter。 TableAdapter 會將專案中具類型的數據集連接到資料庫。 如需詳細資訊,請參閱 TableAdapter 概觀。
下列程式代碼範例假設您已連線到 Northwind 資料庫中的 Customers 數據表,而且您的專案包含名為
customersTableAdapter
的 TableAdapter,以及名為 的northwindDataSet
具型別數據集。