Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ADO как базовый объект доступа.doc
Скачиваний:
16
Добавлен:
15.12.2018
Размер:
1.48 Mб
Скачать

1.4.6. Создание объекта DataAdapter

Объект DataAdapter может быть создан следующими способами:

  • с использованием Server Explorer;

  • с использованием мастера;

  • вручную.

Рассмотрим все эти возможности.

Создание объекта DataAdapter с использованием Server Explorer

Для создания объекта DataAdapter с использованием Server Explorer постройте Windows или Web-приложение, а затем выполните следующие действия.

  1. Создайте или откройте форму в соответствующем приложении, активизируйте окно дизайнера формы и перейдите в окно Server Explorer.

  2. Если нужный вам объект Connection отсутствует, то создайте его.

  3. Откройте объект Connection и войдите в нужный вам элемент этого объекта (Tables, Stored Procedures, Views или Functions). Если, например, вам нужна не вся таблица, а только некоторые колонки, то раскройте следующий уровень и получите доступ к набору колонок таблицы.

4. Выберите одну или более колонок таблицы или хранимой процедуры и перетащите их мышью в окно дизайнера формы (рис. 1.14).

После этого Visual Studio автоматически создаст два объекта Connection и DataAdapter (рис. 1.15).

Если в качестве источника информации использовалась таблица базы данных, то в объекте DataAdapter будут сформированы команды для чтения и обновления данных. Если в качестве источника была взята хранимая процедура, то будут сформированы команды только для чтения данных.

Перетаскивание элементов данных из окна Server Explorer на проектируемую форму наиболее легкий путь создания объекта DataAdapter, однако он не дает возможности создать параметризованный запрос или новые хранимые процедуры. Для этого можно использовать мастер Data Adapter Configuration Wizard.

Создание объекта DataAdapterc использованием мастера

Мастер Data Adapter Configuration Wizard обеспечивает достаточно простой и самый гибкий способ создания адаптера данных.

Для создания объекта Data Adapter с помощью мастера постройте Windows или Web-приложение (см. соответствующие разделы глав 2 и 3) и выполните следующие действия.

  1. Создайте или откройте форму в соответствующем приложении и активизируйте окно дизайнера формы.

  2. Из вкладки Data окна Toolbox перенесите объект OleDbDataAdapter илиSqlDataAdapter в область дизайнера формы (рис. 1.16).

После этого Visual Studio добавит соответствующий объект DataAdapter к форме и запустит мастер Data Adapter Configuration Wizard.

3. В мастере последовательно выполняются следующие шаги:

• На второй странице (рис. 1.17) создайте или выберите существующий объект Connection.

• На третьей странице (рис. 1.18) определите, должен ли адаптер данных использовать SQL-запрос или хранимую процедуру (значения переключателей приведены в табл. 1.1).

Таблица 1.1. Значения положений переключателя способа получения записей из базы данных объектом DataAdapter

Переключатель

Описание

Use SQL statement

Создается SQL-запрос на основе предложения SELECT, который DataAdapter будет использовать для заполнения данными результирующей таблицы объекта DataSet, а также мастер сгенерирует запросы на основе предложений update, insert и delete для обновления данных в исходной таблице базы данных

Use newly created stored procedures

Определяется запрос на основе предложения SELECT, и мастер создает хранимую процедуру для чтения и обновления источника данных. Если поставщик данных не поддерживает этот параметр, то он будет недоступен

Use existing stored procedures

Определяется существующая хранимая процедура, которую DataAdapter будет использовать для чтения и обновления источника данных

Что появится в следующей странице мастера, будет зависеть от сделанного выбора (в данном случае мы выберем переключатель Use SQL statement).

• На четвертой странице (рис. 1.19) создается запрос на выборку данных с предложением SELECT.

На этой странице можно либо просто набрать текст SQL-запроса, либо использовать мастер построения запросов, для запуска которого необходимо нажать кнопку Query Builder. При вызове мастера построения запросов появится дополнительное окно (рис. 1.20) с предложением выбрать одну из таблиц базы данных.

В построителе запросов можно выбрать требуемую таблицу, указать перечень необходимых колонок, сконфигурировать параметры запроса, задать условия сортировки. Можно также выполнить запрос и посмотреть возвращаемые им данные (рис. 1.21).

После нажатия кнопки ОК мастер завершит свою работу, а текст построенного запроса будет передан мастеру конфигурирования адаптера данных (рис. 1.22).

Нажав на кнопку Next, мы перейдем на информационную страницу мастера (рис. 1.23), где выведен перечень элементов, созданных в результате работы мастера. Если мастеру, по каким-либо причинам не удалось создать некоторые элементы, они будут помечены соответствующими

предупреждающими значками. В нашем случае против каждого элемента стоит отметка о его успешном создании.

Когда мастер закончит свою работу кроме объекта DataAdapter будет построен и объект Connection, который был определен на второй странице мастера.

Если вы хотите изменить название объектов DataAdapter и connection, выберите мышью нужный объект и задайте удобное для вас имя в окне Properties.

Если вы хотите посмотреть, какие данные DataAdapter перенесет в набор данных Dataset, то можно запустить мастера предварительного просмотра данных. Для этого нужно в меню Data выбрать пункт Preview Data и в открывшемся диалоговом окне Data Adapter Preview нажать кнопку Fill Uataset (рис. 1.24).

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

Создание и конфигурирование объекта DataAdapter вручную

Вы можете создать объект DataAdapter вручную, без использования соответствующего мастера. Независимо от того, когда и каким способом был создан DataAdapter, всегда имеется возможность изменить его конфигурацию.

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

  1. Убедитесь, что объект Connection создан и расположен на проектируемой форме или компоненте.

  2. Из вкладки Data окна Toolbox перенесите объект OleDbDataAdapter или SqlDataAdapter в область дизайнера формы. Visual Studio добавит соответствующий объект DataAdapter к форме и запустит мастер DataAdapter Configuration Wizard.

  3. Закройте мастера Data Adapter Configuration Wizard.

Процесс ручного конфигурирования объекта DataAdapter заключается в следующем.

1. Выделите мышью объект DataAdapter и перейдите в окно Properties, где можно сформировать команды, позволяющие читать и обновлять данные. В первую очередь необходимо сформировать объект SelectCommand (рис. 1.25). Если DataAdapter будет использоваться и для модернизации таблицы источника данных, то также необходимо сформировать объекты UpdateCommand, DeleteCommand, InsertCommand.

Для каждого объекта Command необходимо задать следующие свойства (табл. 1.2).

Таблица 1.2. Свойства объекта Command

Свойство

Описание

ActiveConnection

Устанавливает ссылку на объект Connection. Кроме того, мож-

но создать новый объект Connection в свойстве

ActiveConnection окна Properties. Как правило, все объекты

Command используют один и тот же объект connection. Однако

вы имеете возможность использования различных объектов

Connection для каждого из объектов Command

CommandText

Содержит текст SQL-запроса или имя хранимой процедуры. Для

некоторых провайдеров возможно создание мультизапроса или

хранимой процедуры с несколькими инструкциями, разделен-

ными точкой с запятой (;). Эти инструкции выполняются после-

довательно. Это полезно для ситуаций, когда после добавления

или удаления записей нужно повторно получить из базы данных

обновленную информацию

CornmandType

Тип команды в свойстве CommandText. Может принимать следующее значения:

□ Text — текст SQL-запроса

□ StoredProcedure — хранимая процедура

□ TableDirect — имя таблицы

Parameters

Коллекция объектов Parameter , через которые значения параметров передаются команде. В объекте SelectCommand создается коллекция параметров только в том случае, если команда возвращает не все записи исходной таблицы. Объекты UpdateCommand, InsertCommand И DeleteCommand всегда требуют определения параметров

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

  2. В меню Data выберите пункт Generate DataSet.

  3. Если вы хотите увидеть, какими данными DataAdapter заполнил набор данных DataSet, вызовите окно предварительного просмотра данных.

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