Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Создание подключения к базе данных. Управляемые провайдеры

Управляемые провайдеры. Скорее всего, одним из первых вопросов у каждого, кто начал разбираться с ADO.NET, будет: «А как создать DataSet?» Ответ будет звучать так: при помощи управляемого провайдера (managed provider). Управляемый провайдер — это набор классов, реализующих интерфейсы, определенные в пространстве имен System.Data. Речь идет об интерфейсах IDbCommand, IDbDataAdapter, IDbConnection и IDataReader:

В состав ADO.NET включены два управляемых провайдера: провайдер SQL и провайдер OleDb. Провайдер SQL специально оптимизирован под взаимодействие с Microsoft SQL Server версии 7.0 и последующих. Для других источников данных предлагается использовать провайдер OleDb, который можно использовать для обращения к любым хранилищам данных, поддерживающим протокол OLE DB. Можно сказать что, управляемый провайдер — это шлюз к хранилищу данных (например, на сервере баз данных), при помощи которого можно произвести загрузку данных из этого внешнего хранилища в объект DataSet.

Управляемый провайдер SQL предлагает прямой доступ к хранилищам данных, при котором производительность будет максимальной. Рассмотрим особенности работы с управляемым провайдером SQL. Он предназначен только для работы с базами данных на сервере MS SQL Server и хорошо оптимизирован именно для такой работы. Типы, которые составляют управляемый провайдер SQL, определены в пространстве имен System. Data.SqlClient.

Список основных типов управляемого провайдера SQL:

SqlCommand – Представляет запрос SQL, производимый к источнику данных SQL Server.

SqIConnection – Представляет открытое соединение с источником данных.

SqIDataAdapter – Представляет соединение с базой данных и набор команд, используемыхдля заполнения объекта DataSet, а также обновления исходной базы данных после внесения изменений в DataSet.

SqIDataReader – Обеспечивает метод считывания потока данных из источника в одном направлении (вперед).

SqlError, SqlErrors, SqlException: SqlErrors представляет набор ошибок и предупреждений, возвращаемых источником данных. Сами эти ошибки и предупреждения представлены объектами SqlError. При возникновении ошибки может быть сгенерировано исключение, представленное объектом SqlException.

SqlParameter-Collection, SqIParameter – Используются для передачи значений параметров хранимой процедуре из источника данных. Параметры представлены объектами SclParameter.

При использовании управляемого провайдера SQL очень удобно использовать классы, которые предназначены для представления «родных» типов данных SQL Server 7.0 и SQL Server 2000. Эти классы определены в пространстве имен System. Data. SqlTypes. Например, SqINumeric – decimal, SqIDouble – float, Sqllnt32 – int и т.д.

Создание подключения к базе данных. Первое, что необходимо сделать — открыть соединение с базой данных:

public static void Main()

// Шаг 1: Создаем соединение

SqlConnection сn = newSq1Connection("server=(local);uid=sa;pwd-;database= Имя­_БД"};

При работе с управляемым провайдером SQL не указывается значение для Provider (поскольку мы всегда подключаемся к SQL Server), кроме того, в целом используется набор пар имя — значение.

После того как соединение с использованием строки подключения установлено, мы уже действуем следующим путем: создаем объект SqIDataAdapter и определяем для него текст запроса SQL через конструктор.

 

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

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

Хотя объект DataSet предоставляет инструмент для хранения данных в памяти, нам нужен другой инструмент для создания и инициализации различных таблиц. Это инструмент – объект DataAdapter. Он представляет собой консоль, который скрывает детали работы. Объект DataAdapter позволяет искать и сохранять данные между объектом DataSet и хранить источник данных. Объект DataAdapter также отвечает за передачу любого обновления, вставки или удаления в физической базе данных. Вы можете использовать четыре команды объекта, чтобы получить любые обновления: UpdateCommand, InsertCommand, DeleteCommand и SelectCommand.

Объект DataAdapter существует в двух формах: объекты SqlDataAdapter и OleDbDataAdapter объекты. Источник данных – это SQL Server для объектов SqlDataAdapter, любые другие OLE DB Provider – для объектов OleDbDataAdapter.

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

Класс SqlDataAdapter. Для взаимодействия с базой данных после того как соединение установлено используется класс SqlDataAdapter. Он предоставляет набор выполняемых над данными команд и подключения базы данных, которые используются для заполнения объекта DataSet и обновления базы данных SQL Server. Этот класс не наследуется. Класс SqlDataAdapter содержит следующие члены:

1. Конструкторы:

· SqlDataAdapter() – инициализирует новый экземпляр класса SqlDataAdapter.

· SqlDataAdapter(SqlCommand) – инициализирует новый экземпляр класса SqlDataAdapter с помощью указанной команды SqlCommand в качестве свойства SelectCommand.

· SqlDataAdapter(String, SqlConnection) – инициализирует новый экземпляр класса SqlDataAdapter с помощью SelectCommand и объекта SqlConnection.

· SqlDataAdapter(String, String) – инициализирует новый экземпляр класса SqlDataAdapter с помощью SelectCommand и строки подключения.

<== предыдущая лекция | следующая лекция ==>
Интерференция света | Объекты базы данных Microsoft Access
Поделиться с друзьями:


Дата добавления: 2014-01-14; Просмотров: 1311; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.