Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD_redaktsia_2013.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
931.98 Кб
Скачать
  1. Заполнение набора данных

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

При заполнении набора данных возникают различные события, проверяются ограничения, и т. д.

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

Если вы создали набор данных с использованием средств проектирования, например с помощью мастера данных, вызовите метод 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);

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

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

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

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

Вызовите метод Fill адаптера обработки данных DataAdapter. В результате адаптер выполнит инструкцию SQL или хранимую процедуру, на которую ссылается свойство SelectCommand, и поместит результат в таблицу набора данных. Если набор данных содержит несколько таблиц, для каждой таблицы необходимо иметь отдельный адаптер обработки данных и, следовательно, необходимо каждую таблицу заполнять отдельно.

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

Вызовите метод Fill объекта DataAdapter, передав в него DataSet или DataTable для загрузки данных. Например:

sqlDataAdapter1.Fill(dataset1.Tables["Customers"]);

В обычном случае следует указать имя DataTable для загрузки данных. Если передается имя DataSet вместо конкретной таблицы данных, DataTable с именем Table1 будет добавлена в набор данных и загружена с результатами из базы данных.

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

Можно вызвать запрос как метод объекта TableAdapter для загрузки данных в таблицы набора данных. Передайте DataTable, которую требуется заполнить, запросу адаптера таблицы TableAdapter. Если запрос использует параметры, также передайте их в метод. Если набор данных содержит несколько таблиц, следует иметь отдельные адаптеры таблиц TableAdapters для каждой таблицы и, следовательно, заполнять каждую таблицу отдельно. Примечание. По умолчанию при каждом выполнении запроса объекта TableAdapter данные в таблице очищаются перед загрузкой результатов запроса в таблицу. Можно сохранить существующие данные в таблице и добавить результаты, присвоив свойству ClearBeforeFill адаптера таблиц TableAdapter значение false. Для заполнения набора данных с помощью адаптера таблицы TableAdapter: 1. Откройте форму или компонент в окне Редактор кода. 2. Добавьте код в любое место в приложении, где необходимо загрузить данные в таблицу. Если запрос не требует параметров, передайте DataTable, которую требуется заполнить. Код может выглядеть следующим образом: this.customersTableAdapter.Fill(this.northwindDataSet.Customers); 3. Если запрос использует параметры, передайте DataTable, которую требуется заполнить, вместе с параметрами, ожидаемыми запросом. В зависимости от фактических параметров в запросе код будет выглядеть аналогично следующим примерам:

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]