Поделиться через


Обновление источника данных с данными из элемента управления узла

Вы можете привязать элемент управления ведущего приложения к источнику данных и обновлять источник данных с помощью изменений, внесенных в данные в элементе управления. Этот процесс включает два основных этапа.

  1. Обновление источника данных в памяти с использованием измененных данных в элементе управления. Как правило, источник данных в памяти — это DataSet, DataTableили какой-либо другой объект данных.

  2. Обновление базы данных с использованием измененных данных в источнике данных в памяти. Это применимо только в том случае, если источник данных подключен к внутренней базе данных, например к базе данных SQL Server или Microsoft Office Access.

    Дополнительные сведения об элементах управления узла и привязке данных см. в разделе "Общие сведения о элементах узла" и элементах управления узлами и привязке данных к элементам управления в решениях Office.

    Область применения. Сведения в этом разделе относятся к проектам уровня документа и проектам надстроек VSTO для Excel и Word. Дополнительные сведения см. в разделе "Функции", доступные по Приложение Office ликации и типу проекта.

Обновление источника данных в памяти

По умолчанию элементы управления ведущего приложения с поддержкой простой привязки данных (например, элементы управления содержимым в документе Word или элемент управления диапазона на листе Excel) не сохраняют изменения данных в источнике данных в памяти. То есть когда пользователь изменяет значение в элементе управления ведущего приложения и затем выходит из этого элемента управления, новое значение в элементе управления не сохраняется автоматически в источнике данных.

Для сохранения данных в источник данных можно написать код, который обновляет источник данных в ответ на определенное событие во время выполнения, или можно настроить элемент управления так, чтобы источник данных обновлялся автоматически при изменении значения в элементе управления.

Нет необходимости сохранять изменения ListObject в источнике данных в памяти. При привязке элемента управления ListObject к данным элемент управления ListObject автоматически сохраняет изменения в источнике данных в памяти без необходимости написания дополнительного кода.

Обновление источника данных в памяти во время выполнения

  • Вызовите метод WriteValue объекта Binding , который привязывает элемент управления к источнику данных.

    В следующем примере выполняется сохранение изменений, внесенных в элемент управления NamedRange в листе Excel, в источнике данных. В этом примере предполагается, что имеется элемент управления NamedRange с именем namedRange1 , свойство Value2 которого привязано к полю в источнике данных.

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

Автоматическое обновление источника данных в памяти

Вы также можете настроить элемент управления, чтобы он автоматически обновлял источник данных в памяти. В проекте уровня документа это можно сделать с помощью кода или конструктора. В проекте надстройки VSTO необходимо использовать код.

Установка автоматического обновления источника данных в памяти элементом управления с помощью кода

  1. Используйте режим Binding System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged объекта, который привязывает элемент управления к источнику данных. Обновлять источник данных можно двумя способами.

    • Чтобы обновить источник данных при проверке элемента управления, задайте для этого свойства значение System.Windows.Forms.DataSourceUpdateMode.OnValidation.

    • Чтобы обновить источник данных при изменении значения свойства, привязанного к данным элемента управления, задайте для этого свойства значение System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged.

      Примечание.

      Параметр System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged не применяется к элементам управления узлом Word, так как Word не предлагает уведомления об изменении документа или изменения элемента управления. Однако этот вариант можно использовать для элементов управления Windows Forms в документах Word.

      В следующем примере элемент управления NamedRange настраивается для автоматического обновления источника данных при изменении значения в этом элементе управления. В этом примере предполагается, что имеется элемент управления NamedRange с именем namedRange1 , свойство Value2 которого привязано к полю в источнике данных.

      this.namedRange1.DataBindings["Value2"].DataSourceUpdateMode = 
          DataSourceUpdateMode.OnPropertyChanged;
      

Установка автоматического обновления источника данных в памяти элементом управления с помощью конструктора

  1. В Visual Studio откройте документ Word или книгу Excel в конструкторе.

  2. Щелкните элемент управления, который вы хотите настроить для автоматического обновления источника данных.

  3. В окне Свойства разверните свойство (DataBindings) .

  4. Рядом со свойством (Дополнительно) нажмите кнопку с многоточием (VisualStudioEllipsesButton screenshot).

  5. В диалоговом окне Форматирование и дополнительная привязка щелкните раскрывающийся список Режим обновления источника данных и выберите одно из следующих значений.

    • Для обновления источника данных при проверке элемента управления выберите значение OnValidation.

    • Для обновления источника данных при изменении значения свойства привязки к данным элемента управления выберите значение OnPropertyChanged.

      Примечание.

      Вариант с OnPropertyChanged не применяется для элементов управления ведущего приложения Word, поскольку Word не предоставляет уведомления об изменении документа или изменении элемента управления. Однако этот вариант можно использовать для элементов управления Windows Forms в документах Word.

  6. Закройте диалоговое окно Форматирование и дополнительная привязка .

Обновление базы данных

Если источник данных в памяти связан с базой данных, необходимо обновить базу данных с использованием изменений в источнике данных. Дополнительные сведения об обновлении базы данных см. в разделе "Сохранение данных обратно в базу данных " и "Обновление данных" с помощью TableAdapter .

Обновление базы данных

  1. Вызовите метод EndEdit объекта BindingSource для элемента управления.

    Объект BindingSource создается автоматически при добавлении элемента управления с привязкой к данным в документ или книгу во время разработки. Объект BindingSource подключает элемент управления к типизированному набору данных. Дополнительные сведения см. в разделе "Общие сведения о компоненте BindingSource".

    В следующем примере кода предполагается, что проект содержит BindingSource с именем customersBindingSource.

    this.customersBindingSource.EndEdit();
    
  2. Update Вызовите метод созданного TableAdapter в проекте.

    TableAdapter автоматически создается при добавлении элемента управления, привязанного к данным, в документ или книгу во время разработки. TableAdapter подключает типизированный набор данных в проекте к базе данных. Дополнительные сведения см. в обзоре TableAdapter.

    В следующем примере кода предполагается, что у вас есть подключение к таблице Customers в базе данных Northwind, и что проект содержит имя TableAdapter и типизированный набор данных с именем customersTableAdapternorthwindDataSet.

    this.customersTableAdapter.Update(this.northwindDataSet.Customers);