Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции OOP c#.doc
Скачиваний:
44
Добавлен:
22.09.2019
Размер:
3.38 Mб
Скачать

4.1. Архитектура ado.Net

Практически в любом серьезном приложении возникает необходимость работы с базами данных (БД). Обычно для этого используются некие стандартные интерфейсы и библиотеки, вместе составляющие технологию работы с БД. Примерами таких технологий являются ODBC, JDBC, OLE DB, ADO. При создании платформы .NET фирма Microsoft представила новую технологию доступа к данным – ADO.NET. Особенностями ADO.NET являются интеграция с XML и ориентированность на рассоединенные данные. Последнее означает, что для обработки данных в приложении не требуется постоянное соединение с БД. Данные перемещаются в специальную структуру для хранения и соединение с базой разрывается. Данные обрабатываются в спецструктуре, далее устанавливается соединение, и обновленные данные «закачиваются» обратно в базу.

Рассмотрим общую схему архитектуры ADO.NET, показанную на рис. 10.

Рис. 10. Общая схема архитектуры ADO.NET

Одним из основных элементов архитектуры является поставщик (провайдер) данных (data provider). Поставщик данных – это совокупность классов, предназначенных для непосредственного взаимодействия с базой. Поставщики данных не универсальны, они специфичны для каждой СУБД: Oracle, MS SQL Server, MySQL и т. д. Унификация поставщиков достигается благодаря тому, что классы любого поставщика реализуют некие стандартные интерфейсы. С платформой .NET 1.0 инсталлируются два поставщика: поставщик OLE DB и поставщик для Microsoft SQL Server. Классы данных поставщиков находятся в пространствах имен System.Data.OleDb и System.Data.SqlClient соответственно. Кроме этого, пространство имен System.Data.SqlTypes содержит структуры для описания типов, используемых в СУБД SQL Server.

Любой поставщик данных содержит четыре основных класса1: Connection, Command, DataReader и DataAdapter. Назначение класса Connection – установка и поддержка соединения с базой данных. Класс Command служит для выполнения запросов и команд. Можно выполнить как команды, не возвращающие данных (например, создание таблицы в базе), так и запросы, возвращающие скалярное значение или набор данных (SELECT). В последнем случае для чтения данных, полученных командой, используется объект класса DataReader – ридер. Отличительной чертой ридера является то, что он представляет собой однонаправленный курсор данных в режиме «только-для-чтения». Класс DataAdapter служит своеобразным «мостом» между поставщиком данных и рассоединенным набором данных. Этот класс содержит четыре команды для выборки, обновления, вставки и удаления данных.

Вторым важным элементом ADO.NET является набор классов, представляющих рассоединенный набор данных из базы. Главным компонентом данного набора является класс DataSet, агрегирующий объекты остальных классов. Класс DataTable служит для описания таблиц базы. Класс DataRelation описывает связи между таблицами. Класс PropertyCollection представляет произвольный набор пользовательских свойств. Элементами класса DataTable являются объекты классов DataColumn (колонки таблицы), DataRow (строки таблицы) и Constraint (ограничения на значения элементов таблицы).