Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 2013.doc
Скачиваний:
68
Добавлен:
07.03.2015
Размер:
3.81 Mб
Скачать
  1. Прикладной программный интерфейс субд

    1. Знакомство с основными объектами ado.Net

Для обеспечения доступа к базам данных СУБД предоставляет разработчику набор стандартных процедур и функций (API – Application Programming Interface).

Для обеспечения быстрой разработки приложений, работающих с СУБД MS SQL Server, были созданы различные наборы компонентов, облегчающие взаимодействие с сервером:

  • BDE– набор компонентов для доступа к большому числу СУБД; разработан фирмойBorland(на текущий момент более не поддерживается); этот способ доступа не является рекомендуемым, поскольку не обеспечивает полноценный доступ к возможностям сервера;

  • ODBC(OpenDatabaseConnectivity) - широко распространенный программный интерфейс фирмы Microsoft. ODBC-драйвер дляSQLServer, обеспечивает полнофункциональный доступ к серверу.

  • OLEDBиADO- часть универсального механизма доступа к данным Microsoft. ADO (ActiveX Data Objects) - надстройка над интерфейсом OLE DB, позволяющая обеспечить бизнес-приложениям высокоуровневый доступ к данным. В качестве драйверов баз данных ADO использует так называемые OLE DB-провайдеры (дляMSSQLServerиспользуется провайдер Microsoft OLE DB Provider for SQL Server), которые представляют собой COM-серверы, реализующие предопределенный набор COM-интерфейсов.

  • ADO.NET- основная модель доступа к данным для приложений, основанных на Microsoft .NET. Представляет собой совершенно самостоятельную (по отношению к рассмотренному выше механизмуADO) технологию. Компоненты ADO.NET входят в поставку оболочки .NET Framework.

Общее описание объектной модели ADO.NET

ADO.NET (ActiveX Data Object.NET) - новая объектная модель, которая обеспечивает доступ к источникам данных в платформе .NET и использует стандарт XML для передачи данных.

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

Одна из характерных особенностей ADO.NET – это использование управляемых провайдеров (managed provider) для доступа к данным. Управляемый провайдер данных – это набор объектов ADO.NET, разработанных для соединения с определенным источником данных. Все провайдеры обеспечивают одинаковый набор базовых методов и свойств, скрывая в своей реализации всю работу с API доступа к источнику данных. Необходимо только знать, какой управляемый провайдер должен использоваться в конкретном случае. В Visual Studio 2008 (.NET Framework 2.0) доступны:

  • SQL Server .NET Data Provider: предназначен для работы с базами данных Microsoft SQL Server 7.0 и более поздних версий; оптимизирован для доступа к SQL Server и взаимодействует с ним напрямую по «родному» протоколу передачи данных SQL Server;

  • OLE DB .NET Data Provider: управляемый провайдер для источников данных OLE DB; немного уступает по эффективности SQL Server .NET Data Provider, так как взаимодействует с базой данных через уровень OLE DB; используется для доступа к базам данных Access, Oracle, Active Directory, каталогам LDAP и другим источникам, поддерживающим OLE DB;

  • ODBC .NET Data Provider обеспечивает нативный доступ к ODBC-драйверам;

  • Oracle.NET Data Provider предназначен для работы с базами данных СУБДOracle.

Провайдеры реализуется при помощи объектов, определенных в пространстве имен:

  • System.Data.SqlClient - содержит типы SQL Server .NET Data Provider;

  • System.Data.OleDb - содержит типы OLE DB .NET Data Provider;

  • System.Data.Odbc. - содержит типы ODBC .NET Data Provider;

  • System.Data.OracleClient - содержит типы Oracle .NET Data Provider;

  • System.Data. содержит типы, независимые от провайдеров, например, DataSet , DataTable, DataRelation, DataColumn, DataRow.

Рассмотрим основные классы объектов ADO.NET для работы с СУБД MS SQL Server.

DataSet- ключевой объект, который хранит данные в ADO.NET и представляет моментальный снимок части базы данных, размещенный в памяти. DataSet не имеет собственных средств для работы с источниками данных. Связующую роль между DataSet и источником данных выполняют управляемые провайдеры. Класс DataSet состоит из коллекции таблиц DataTable, которые можно связать между собой с помощью объектов класса DataRelation. Кроме того, для обеспечения целостности данных в классе DataSet можно использовать объекты UniqueConstraint и ForeignKeyConstraint.

DataRelation– класс, представляющий отношение "родительский - дочерний объект" между двумя объектами DataTable. Например, в отношении "Покупатель-Заказы" таблица "Покупатели" является родительской, а таблица "Заказы" — дочерней. Является аналогом отношения первичный ключ - внешний ключ.

DataTable– класс, представляющий одну таблицу с данными в памяти. Является центральным объектом библиотеки ADO.NET.

SqlDataAdapter- представляет набор выполняемых над данными команд и подключения базы данных, которые используется для заполнения DataSet и обновления базы данных SQL Server. Класс по сути служит мостом между DataSet и SQL Server для извлечения и сохранения данных; метод Fill изменяет данные в DataSet для соответствия их источнику данных, а метод Update изменяет данные в источнике данных для их соответствия DataSet с помощью выполняемых над источником данных инструкций Transact-SQL. Обновление выполняется построчно. SqlDataAdapter используется совместно c SqlConnection и SqlCommand для увеличения производительности при подключении к базе данных Microsoft SQL Server.

SqlDataReader- предоставляет возможность чтения потока строк только в прямом направлении из базы данных SQL Server. Используется, как правило, для хранения результатов выполненияSqlCommand.

SqlConnection- предоставляет открытое подключение к базе данных SQL Server и эквивалентен сетевому подключению к серверу.

SqlCommand– класс, представляющий инструкцию Transact-SQL или хранимую процедуру, выполняемую над базой данных SQL Server.

SqlCommandBuilder - связывается с объектом SqlDataAdapter и создает автоматически инструкции Transact-SQL, необходимые для согласования изменений, сделанных в DataSet со связанным экземпляром SQL Server.

Элементы управления для Windows Forms

BindingNavigator- элемент управления, который обеспечивает пользовательский интерфейс для перехода и управления элементами управления, привязанными к данным. BindingNavigator как правило используется совместно с компонентом BindingSource для создания стандартного средства поиска и изменения данных в форме Windows Form.

BindingSource– класс, инкапсулирующий источник данных для формы. Компонент используется для многих задач, выполняя различные функции связи между элементами управления Windows Forms и источниками данных. Это достигается путем присоединения компонента BindingSource к источнику данных с помощью свойства DataSource. Перемещение по источнику данных и его обновление выполняется посредством таких методов, как MoveNext, MoveLast и Remove. Такие операции, как сортировка и фильтрация, обрабатываются посредством свойств Sort и Filter.

DataGridView – элемент управления, предоставляющий настраиваемую таблицу для отображения данных. Класс DataGridView допускает настройку ячеек, строк, столбцов и границ. Можно воспользоваться элементом управления DataGridView для отображения данных вместе с источником базовых данных (свойство DataSource) или без него.