Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Установление соединения при помощи типа OleDbConnection




Лабораторная работа №5. Разработка приложений с применением управляемых провайдеров ADO.NET

Цель работы

Изучить общую структуру и основные виды провайдеров технологии ADO.NET. Научиться применять классы и методы, используемые при работе с управляемым провайдером OLE DB

 

Сведения из теории

В платформе .NET определено множество типов (организованных в соответствующие пространства имен), которые помогают обеспечить взаимодействие с локальными и удаленными хранилищами данных. Общее название пространств имен с этими типами – ADO.NET.

Все типы ADO.NET предназначены для выполнения единого набора задач: установить соединение с хранилищем данных, создать и заполнить данными объект DataSet, отключиться от хранилища данных и вернуть изменения, внесенные в объект DataSet, обратно в хранилище данных. Объект DataSet – это тип данных, представляющий локальный набор таблиц и информацию об отношениях между ними.

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

 

Общие сведения об управляемых провайдерах ADO.NET

Управляемый провайдер в ADO.NET – это шлюз к хранилищу данных (например, на сервере баз данных), при помощи которого можно произвести загрузку данных из этого внешнего хранилища в объект DataSet. Взаимодействие управляемых провайдеров .NET Framework и объекта DataSet приведено на рисунке 5.1.

Вместе с ADO.NET поставляются несколько управляемых провайдеров:

- провайдер OLE DB, который реализуется при помощи типов, определенных в пространстве имен System.Data.OleDb. Этот провайдер позволяет обращаться к данным, расположенным в любом хранилище, к которому можно подключиться по протоколу OLE DB, например, в базах данных SQL Server 6.5 или ранее, MS Access;

- провайдер SQL – предлагает прямой доступ к хранилищам данных на MS SQL Server 7.0 и последующих версий. Типы, используемые провайдером SQL, содержатся в пространстве имен System.Data.SqlClient;

- провайдер ODBC – предназначен для приложений, использующих источники данных ODBC. Типы, используемые этим провайдером, содержатся в пространстве имен System.Data.Odbc;

- провайдер Oracle – предназначен для приложений, использующих источники данных Oracle. Типы, используемые этим провайдером, содержатся в пространстве имен System.Data.OracleClient.

 

Рис. 5.1. Архитектура ADO.NET

 

В пространстве имен System.Data.Commonопределено множество абстрактных типов, которые обеспечивают общий интерфейс для всех управляемых провайдеров. Так, все провайдеры реализуют интерфейс IDbConnection, который используется для конфигурирования и открытия сеанса подключения к источнику данных. Типы, которые реализуют другой интерфейс – IDbCommand – используются для выполнения SQL-запросов к базам данных. IDataReader обеспечивает считывание данных при помощи однонаправленного курсора только для чтения. Типы, которые реализует IDbDataAdapter, ответственны за заполнение объекта DataSet данными из базы данных.

В данной работе будет рассматриваться доступ к данным с использованием управляемого провайдера OLE DB.

 

Управляемый провайдер OLE DB

Основные классы пространства имен System.Data.OleDb представлены в таблице:

 

Класс Описание
OleDbCommand Представляет запрос SQL, производимый к источнику данных
OleDbConnection Представляет открытое соединение с источником данных
OleDbDataAdapter Представляет соединение с БД и набор команд, используемых для заполнения объекта DataSet, а также обновления исходной БД после внесения изменений в DataSet
OleDbDataReader Обеспечивает метод считывания потока данных из источника в одном направлении (вперед)
OleDbErrorCollection OleDbError OleDbException OleDbErrorCollectionпредставляет набор ошибок и предупреждений, возвращаемых источником данных. Сами эти ошибки и предупреждения представлены объектами OleDbError. При возникновении ошибки может быть сгенерировано исключение, представленное объектом OleDbException
OleDbParameterCollection OleDbParameter Используются для передачи параметров процедуре, хранимой на источнике данных. Параметры представлены объектами OleDbParameter, весь набор – объектом OleDbParameterCollection

 

Установление соединения при помощи типа OleDbConnection

При работе с управляемым провайдером OLE DB первое, что нужно сделать – установить соединение с источником данных при помощи класса OleDbConnection. Для этого класса предусмотрено использование строки подключения, состоящей из пар имя – значение. С ее помощью можно задать имя компьютера или файла, к которому производится подключение, параметры безопасности подключения, имя базы данных, а также имя самого провайдера OLE DB.

Для подключения к базе данных MS Access используется провайдер Microsoft.Jet.OLEDB.4.0.

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

Основные компоненты класса OleDbConnection приведены в таблице:

 

Компонент Описание
BeginTransaction() CommitTransaction() RollBackTransaction() Используются для того, чтобы программным образом начать транзакцию, завершить ее или отменить
Close() Закрывает соединение с источником данных
ConnectionString Позволяет настроить строку подключения при установлении соединения или получить ее содержание
ConnectionTimeout Позволяет получить или установить время тайм-аута при установке соединения
Database Позволяет получить или установить название текущей базы данных во время подключения
DataSource Позволяет получить или установить имя сервера или файла с источником данных
Open() Открывает соединение с базой данных, используя текущие настройки свойств соединения
Provider Позволяет получить или установить имя провайдера
State Позволяет получить информацию о текущем состоянии соединения

 

Построение команды SQL

Объектно-ориентированным представлением запроса на языке SQL в ADO.NET является класс OleDbCommand. Сам текст команды определяется через свойство CommandText. Множество типов ADO.NET принимают объект OleDbCommand в качестве параметра для того, чтобы передать запрос к источнику данных. Также в классе OleDbCommand предусмотрено множество других компонентов, которые позволяют определить характеристики запроса (см. таблицу).

 

Компонент Описание
Cancel() Прекращает выполнение команды
CommandText Позволяет получить или задать текст запроса на языке SQL, который будет передан источнику данных
CommandTimeout Позволяет получить время тайм-аута при выполнении команды. По умолчанию это время равно 30 секундам
CommandType Позволяет получить или установить значение, определяющее, как именно будет интерпретирован текст запроса
Connection Позволяет получить ссылку на объект OleDbConnection, для которого используется данный объект OleDbCommand
ExecuteReader() Возвращает объект OleDbDataReader
Parameters Возвращает коллекцию параметров OleDbParameterCollection
Prepare() Готовит команду к выполнению (например, она будет откомпилирована) на источнике данных

 

Работа с OleDbDataReader

После того, как соединение с источником данных открыто и создан объект – команда SQL, следующая задача – передать эту команду (запрос) источнику данных. Это можно сделать несколькими способами, но использование OleDbDataReader – это наиболее простой, наиболее быстрый способ получения информации от источника данных … и наименее гибкий. Этот класс представляет однонаправленный (только вперед), доступный только для чтения поток данных, который за один раз возвращает одну строку в ответ на запрос SQL.

Класс OleDbDataReader очень полезен, когда необходимо последовательно обработать большое количество данных и в то же время не нужно выполнять с этими данными какие-либо операции в памяти. В отличие от DataSet, при использовании OleDbDataReader соединение с базой данных не закрывается автоматически, а сохраняется активным до тех пор, пока не будет закрыто явным образом.

 

Класс OleDbDataAdapter

Класс OleDbDataAdapter используется в тех случаях, когда необходимо заполнить полученными с сервера данными объект DataSet и выполнить с ними определенные операции.

Основное назначение этого класса – извлечь информацию из источника данных и заполнить ею объект DataTable в DataSet при помощи метода OleDbDataAdapter.Fill(). Метод Fill() многократно перегружен, ниже приведены два наиболее часто используемых варианта (возвращаемое значение int позволяет получить информацию о количестве записей, полученных из источника данных):

//Заполняет объект DataSet данными, полученными из таблицы

//на источнике данных с указанным именем

public int Fill(DataSet ds, string tableName);

//Также заполняет данными, но только теми, которые находятся

//в указанных границах

public int Fill(DataSet ds, string tableName, int startRecord, int maxRecord);

Конечно, перед тем, как вызывать этот метод, нужно иметь уже созданный объект OleDbDataAdapter. Конструктор OleDbDataAdapter также многократно перегружен, но обычно необходимо указать информацию о параметрах подключения к базе данных и команду SELECT на языке SQL, которая будет использована для заполнения DataTable.

OleDbDataAdapter позволяет не только заполнять объект DataTable внутри DataSet данными, полученными из источника, но и помещать измененные данные обратно в источник данных при помощи стандартных команд SQL. Ниже в таблице представлены компоненты класса OleDbDataAdapter, которые позволяют это сделать, а также некоторые другие важнейшие элементы этого класса.

 

Компонент Описание
DeleteCommand InsertCommand SelectCommand UpdateCommand Используются для определения того, какая именно команда SQL будет передана на источник данных при вызове метода Update(). Каждое из этих свойств определяется при помощи объектов OleDbCommand
Fill() Заполняет указанную таблицу в DataSet определенным пользователем количеством записей
GetFillParameters() Возвращает все параметры, использованные при выполнении SELECT к источнику данных
Update() Вызывает соответствующие команды INSERT, UPDATE, DELETE к источнику данных для каждой вставленной, измененной или удаленной строки в таблице объекта DataSet

 

При использовании свойств DeleteCommand, InsertCommand, SelectCommand, UpdateCommand объект OleDbDataAdapter автоматически переводит внесенные изменения в таблицу данных в DataSet в соответствующие команды на языке SQL, сохраняя, таким образом, внесенные изменения в источнике данных. Эти свойства позволяют определить соответствующие команды SQL в деталях.

 

Пример выполнения работы

Задание: База данных из двух связанных таблиц «Телефонная книжка» создана в Microsoft Access. Реализовать с помощью управляемого провайдера OLE DB доступ к этой базе данных.

 










Последнее изменение этой страницы: 2018-06-01; просмотров: 252.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...