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

1.4.2. Адаптеры данных и объекты Command

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

этих операций должна произойти, DataAdapter поддерживает следующие четыре свойства:

  • SelectCommand — описание команды, которая обеспечивает выборку нужной информации из базы данных;

  • InsertCommand — описание команды, которая обеспечивает добавление записей в базу данных;

  • UpdateCommand — описание команды, которая обеспечивает обновление записей в базе данных;

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

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

Эти свойства являются самостоятельными объектами и относятся к элементам класса oleDbCommand или Sqlcommand. Данные объекты поддерживают свойство CommandText, содержащее описание SQL-запроса или хранимой процедуры.

Разработчик приложения может самостоятельно сформировать текст OleDbCommand или SqlCommand, хотя чаще в этом нет необходимости, поскольку Visual Studio автоматически генерирует необходимые инструкции SQL при создании объекта DataAdapter. Кроме того, DataAdapter может автоматически генерировать SQL-запросы во время выполнения приложения, если объекты UpdateCommand, Insertcommand или DeleteCommand нe определены на этапе проектирования приложения. Например, вы можете создать или изменить содержимое команды выборки данных, связанной объектом SelectCommand, непосредственно перед тем, как она будет запущена на выполнение.

В Visual Studio также имеется возможность выполнять команды независимо от объекта DataAdapter. Например, когда нет необходимости возвращать набор данных (проверка прав доступа пользователя к базе данных) или когда требуется изменить структуру некоторых таблиц. В этом случае обеспечивается возможность прямой работы с таблицами базы данных на уровне SQL-сервера с удаленных компьютеров, как через локальную сеть, так и через Интернет.

Команды в DataAdapter могут иметь параметры. Например, команда выборки информации (SelectCommand), обычно имеет параметры в предложении where, для того, чтобы получить из базы данных содержимое не всей таблицы, а только записей, соответствующих определенным критериям. Другие команды (например, UpdateCommand) используют параметры для выделения только тех записей в базе данных, которые необходимо модифицировать.

1.4.3. Чтение и обновление данных с использованием объекта DataAdapter

Основная задача, которую должен решать объект DataAdapter — это перемещение информации между основным хранилищем данных на сервере и набором данных DataSet в памяти компьютера пользователя. Объект DataAdapter имеет методы, позволяющие переместить данные между этими двумя компонентами в прямом и обратном направлениях.

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

□ Перемещение записей из таблицы базы данных в соответствующую таблицу объекта DataSet;

Для этих целей используется метод Fill объектов SqlDataAdapter или OleDbDataAdapter. Когда вызывается этот метод, происходит обращение к базе данных с использованием SQL-запроса на основе инструкции select;

□ Передача изменений, сделанных пользователем в таблице объекта DataSet, исходной таблице базы данных.

Для этих целей используется метод Update объектов SqlDataAdapter или OleDbDataAdapter. Когда вызывается такой метод, происходит обращение к базе данных с использованием SQL-запроса на основе инструкций insert, update или delete, в зависимости оттого, что сделал пользователь — добавил, изменил или удалил некоторые записи.

Если в приложении необходимо только получить данные для последовательного просмотра (в режиме read-only), то можно использовать объект DataReader Вместо объекта DataSet. Объект DataReader выбирает информацию из источника (базы) данных и передает ее непосредственно вашему приложению. Как правило, объекты DataReader используются для быстрого просмотра данных в режиме read-only, forward-only, когда не требуется корректирование информации. Например, имеется страница Web-формы, которая просто отображает информацию, полученную из базы данных. Поскольку на Web-форме страница будет обновляться при каждом обращении к источнику данных, то нет необходимости помещать информацию в объект DataSet. Следует отметить, что объект DataAdapter тоже обращается к объекту DataReader для заполнения набора данных DataSet. В Visual Studio

имеется два объекта чтения данных — OleDbDataReader И SqlDataReader, используемых соответственно для OLE DB-источников данных и для SQL Server версии 7.0 и выше.

В Visual Studio при создании набора данных имя результирующей таблицы в объекте DataSet (как и имена колонок) формируется на основе соответствующих имен исходной таблицы источника (базы) данных. Это может быть не совсем удобно как для разработчика, так и для конечного пользователя, поскольку названия колонок может быть слишком длинным или наоборот коротким и малоинформативным. В таком случае естественно возникает желание сменить соответствующие имена и сделать их более понятными и удобными в работе. В Visual Studio разработчики имеют возможность задать новое имя таблицы, создаваемой в DataSet, и новые имена колонок в команде формирования набора данных, а также привести их в соответствие с теми именами, которые используются в базе данных. В объекте DataAdapter имеется коллекция свойств TableMappings, которые обеспечивают поддержку соответствия между названиями элементов (таблиц и колонок) в DataSet и именами соответствующих элементов основного хранилища данных.

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