Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разработка приложений баз данных (Visual Studio 2008).docx
Скачиваний:
143
Добавлен:
26.03.2016
Размер:
1.01 Mб
Скачать

Заполнение набора данных

По умолчанию набор данных не содержит данных. Заполнение набора данных фактически означает загрузку данных в отдельные объекты DataTable, составляющие набор данных. Таблицы данных заполняются путем выполнения запросов адаптера таблиц или выполнением команд адаптера данных (напримерSqlDataAdapter). При заполнении набора данных возникают различные события, проверяются ограничения, и т. д. Код для заполнения набора данных автоматически добавляется в обработчик событий загрузки формы при перетаскивании элементов из окнаИсточники данныхна форму в приложении Windows.

Заполнять наборы данных можно различными способами:

  • Если вы создали набор данных с использованием средств проектирования, например с помощью мастера данных, вызовите метод Fill адаптера таблиц

  • Вызовите метод Fill объекта DataAdapter.

  • Вручную таблицы набора данных можно заполнить, создавая объекты DataRowи добавляя их в коллекцию таблицыDataRowCollection. (Это можно делать только во время выполнения программы; во время разработки задавать элементы коллекцииDataRowCollectionнельзя.)

  • Считывание XML-документа или потока в набор данных. Для получения дополнительных сведений см. описание метода ReadXml. Пример см. в разделеПошаговое руководство. Считывание XML-данных в набор данных.

  • Слияние (копирование) содержимое одного набора данных с другим. Данный сценарий полезен тогда, когда приложение получает наборы данных из различных источников (например из различных веб-служб XML), но при этом требуется объединить их в один набор данных. Дополнительные сведения см. в разделе Объединение содержимого DataSet (ADO.NET).

  • Слияние (копирование) содержимого одной таблицы DataTableс другой.

Заполнение набора данных фактически означает загрузку данных в отдельные объекты DataTable, составляющие набор данных. Таблицы данных заполняются путем выполнения запросов к адаптеру таблицы TableAdapter или вызова команд адаптера обработки данных (например, SqlDataAdapter).

Необходимость использования объектов TableAdapter или адаптеров обработки данных зависит от способа создания набора данных. При использовании средств разработки в Visual Studio, например Мастера настройки источника данных, набор данных содержит адаптеры таблиц TableAdapter. Если набор данных был создан программно, то, как правило, для загрузки данных в таблицы необходимо создание адаптеров обработки данных.

Примечание. При перетаскивании элементов из Источники данных - окно на форму код для заполнения таблицы данными автоматически добавляется к обработчику событий Form_Load. Откройте форму в редакторе кода для просмотра точного синтаксиса заполнения отдельных таблиц. Если не требуется выполнять заполнение таблицы при загрузке формы, можно переместить этот код в другой метод или вообще удалить его.

Заполнение набора данных с помощью адаптера таблицы TableAdapter

Можно вызвать запрос как метод объекта TableAdapter для загрузки данных в таблицы набора данных. Передайте DataTable, которую требуется заполнить, запросу адаптера таблицы TableAdapter. Если запрос использует параметры, также передайте их в метод. Если набор данных содержит несколько таблиц, следует иметь отдельные адаптеры таблиц TableAdapters для каждой таблицы и, следовательно, заполнять каждую таблицу отдельно.

Примечание. По умолчанию при каждом выполнении запроса объекта TableAdapter данные в таблице очищаются перед загрузкой результатов запроса в таблицу. Можно сохранить существующие данные в таблице и добавить результаты, присвоив свойству ClearBeforeFill адаптера таблиц TableAdapter значение false.

Для заполнения набора данных с помощью адаптера таблицы TableAdapter:

  1. Откройте форму или компонент в окне Редактор кода.

  2. Добавьте код в любое место в приложении, где необходимо загрузить данные в таблицу. Если запрос не требует параметров, передайте DataTable, которую требуется заполнить. Код может выглядеть следующим образом:

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

  1. Если запрос использует параметры, передайте DataTable, которую требуется заполнить, вместе с параметрами, ожидаемыми запросом. В зависимости от фактических параметров в запросе код будет выглядеть аналогично следующим примерам:

customersTableAdapter.FillByCity(northwindDataSet.Customers, "Seattle");

customersTableAdapter.FillByCityAndState(northwindDataSet.Customers, "Seattle", "WA");