Что такое ado
Перейти к содержимому

Что такое ado

  • автор:

Введение в ADO.NET

Сегодня большое значение имеет работа с данными. Для хранения данных используются различные системы управления базами данных: MS SQL Server, Oracle, MySQL и так далее. И большинство крупных приложений так или иначе используют для хранения данных эти системы управления базами данных. Однако чтобы осуществлять связь между базой данных и приложением на C# необходим посредник. И именно таким посредником является технология ADO.NET.

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

Причем важно отметить, что систем управления баз данных может быть множество. В своей сущности они могут различаться. MS SQL Server, например, для создания запросов использует язык T-SQL, а MySQL и Oracle применяют язык PL-SQL. Разные системы баз данных могут иметь разные типы данных. Также могут различаться какие-то другие моменты. Однако функционал ADO.NET построен таким образом, чтобы предоставить разработчикам унифицированный интерфейс для работы с самыми различными СУБД.

Основу интерфейса взаимодействия с базами данных в ADO.NET представляет ограниченный круг объектов: Connection, Command, DataReader, DataSet и DataAdapter. С помощью объекта Connection происходит установка подключения к источнику данных. Объект Command позволяет выполнять операции с данными из БД. Объект DataReader считывает полученные в результате запроса данные. Объект DataSet предназначен для хранения данных из БД и позволяет работать с ними независимо от БД. И объект DataAdapter является посредником между DataSet и источником данных. Главным образом, через эти объекты и будет идти работа с базой данных.

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

По умолчанию в ADO.NET имеются следующие встроенные провайдеры:

  • Провайдер для MS SQL Server
  • Провайдер для OLE DB (Предоставляет доступ к некоторым старым версиям MS SQL Server, а также к БД Access, DB2, MySQL и Oracle)
  • Провайдер для ODBC (Провайдер для тех источников данных, для которых нет своих провайдеров)
  • Провайдер для Oracle
  • Провайдер EntityClient. Провайдер данных для технологии ORM Entity Framework
  • Провайдер для сервера SQL Server Compact 4.0

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

Основные пространства имен, которые используются в ADO.NET:

  • System.Data : определяет классы, интерфейсы, делегаты, которые реализуют архитектуру ADO.NET
  • System.Data.Common : содержит классы, общие для всех провайдеров ADO.NET
  • System.Data.Design : определяет классы, которые используются для создания своих собственных наборов данных
  • System.Data.Odbc : определяет функциональность провайдера данных для ODBC
  • System.Data.OleDb : определяет функциональность провайдера данных для OLE DB
  • System.Data.Sql : хранит классы, которые поддерживают специфичную для SQL Server функциональность
  • System.Data.OracleClient : определяет функциональность провайдера для баз данных Oracle
  • System.Data.SqlClient : определяет функциональность провайдера для баз данных MS SQL Server
  • System.Data.SqlServerCe : определяет функциональность провайдера для SQL Server Compact 4.0
  • System.Data.SqlTypes : содержит классы для типов данных MS SQL Servera
  • Microsoft.SqlServer.Server : хранит компоненты для взаимодействия SQL Server и среды CLR

Схематично архитектуру ADO.NET можно представить следующим образом:

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

Функционально классы ADO.NET можно разбить на два уровня: подключенный и отключенный. Каждый провайдер данных .NET реализует свои версии объектов Connection, Command, DataReader, DataAdapter и ряда других, который составляют подключенный уровень. То есть с помощью них устанавливается подключение к БД и выполняется с ней взаимодействие. Как правило, реализации этих объектов для каждого конкретного провайдера в своем названии имеют префикс, который указывает на провайдер:

Провайдеры ADO.NET

Другие классы, такие как DataSet, DataTable, DataRow, DataColumn и ряд других составляют отключенный уровень, так как после извлечения данных в DataSet мы можем работать с этими данными независимо от того, установлено ли подключение или нет. То есть после получения данных из БД приложение может быть отключено от источника данных.

Основы ADO.NET

Основы ADO.NET

19.01.2015

2418

Рейтинг: 5 . Проголосовало: 2
Вы проголосовали:
Для голосования нужно авторизироваться

advertisement advertisement

Введение

ADO.NET – это набор классов (фреймворк) для работы с базами данных, а также XML файлами. Аббревиатура ADO расшифровывается как ActiveX Data Objects. Данная технология имеет методы и классы для извлечения и обработки данных.

Список .NET приложений, которые используют возможности ADO.NET для различных действий с БД:

  • ASP.NET Web Applications
  • Console Applications
  • Windows Applications.

Структуры подсоединения к БД

Можно определить два типа архитектуры подключения:

  1. Архитектура, подключенная к базе: подсоединена к БД на протяжении всего рабочего времени.
  2. Архитектура, не подсоединённая к БД: приложение, автоматически подключается/отключается в процессе работы. Приложения на такой архитектуре используют временные данные, хранящиеся на стороне клиента (DataSet).

advertisement advertisement

ADO.NET и его библиотеки классов

Диаграмма видов

На данной диаграмме видны различные типы приложений (Веб приложения, консольные приложения, приложения для Windows и так далее), использующие ADO.NET для подсоединения к БД (SQL Server, Oracle, OleDb, ODBC, XML-файлы и так далее).

Классы в ADO.NET

Также на предыдущем рисунке мы видим различные классы, а именно:

  1. Connection Class
  2. Command Class
  3. DataReader Class
  4. DataAdaptor Class
  5. DataSet.Class

1. Connection Class

Данные классы применяются в ADO.NET для подсоединения к БД.

Тема связана со специальностями:

2. Command Class

Данный класс обеспечивает хранение и выполнение SQL команд. Ниже приведены различные команды, выполняющиеся с помощью данного класса.

  • ExecuteReader: Возвращает данные к клиенту в виде строк.
  • ExecuteNonQuery: Выполняет команду, изменяющую данные в базе данных.
  • ExecuteScalar: Данный класс возвращает только одно значение.
  • ExecuteXMLReader: (Только для классов SqlClient) Получает данные из базы данных SQL Server 2000 с помощью XML-потока.

3. DataReader Class

DataReader используется для получения данных. Он используется в сочетании с Command Class для выполнения SQL-запроса.

5. DataSet Class

Класс DataSet – сердце ADO.NET, представляющее из себя набор объектов DataTable. Каждый такой объект содержит много объектов DataColumn и DataRow.

Подключение ADO.NET к базе данных

Для настройки подключения Вы должны быть знакомы со строками подключения (connection strings). ConnectionString – строка переменной (регистр не учитывается). Строки подключения нужны нам для параметра SQLConnection. Данные примеры содержат основные значения, а именно: provider, server, database, userid и password.

SQL Аутентификация

String constr= «server=.;database=institute;user > ;

String constr= «data source=.;initial catalog=institute;uid=rakesh;pwd=abc@213» ;

Windows Аутентификация ( Windows Authentication)

String constr= «server=.;database=institute;trusted_connection=true»

String constr= «server=.;initial catalog=institute;integrated security=true»

Видео курсы по схожей тематике:

Разработка пользовательского графического интерфейса (GUI) на C# под Android (Xamarin)

Разработка пользовательского графического интерфейса (GUI) на C# под Android (Xamarin)

Асинхронное программирование в C# 5

Асинхронное программирование в C# 5

C# Универсальные шаблоны

C# Универсальные шаблоны

Получение и отображение данных из базы данных

Получить и отобразить данные можно по такой схеме:

  1. Создайте объект SqlConnection, используя строку подключения.
  2. Откройте соединение.
  3. Создайте SQLCommand. Укажите тип SQLCommand.
  4. Выполните команду (используйте executereader).
  5. Получить результат (используйте SqlDataReader).
  6. Закройте соединение.
  7. Получите результат.

Ниже приведен код для подсоединения к SQL:

public partial class WebForml : System.Web.UI.Page

protected void Page_Load( object sender, EventArgs e)

SqlConnection con = new SqlConnection ( «data source=.; database=Sample; integrated security=SSPI» );

SqlCommand cmd = new SqlCommand ( «Select * from tblProduct» , con);

SqlDataReader rdr = cmd.ExecuteReader();

Вы должны использовать System.Data.SqlClient для подключения к SQL. В предыдущем коде мы использовали классы SqlConnection, SqlCommand и SqlDataReader, потому что наше приложение обращалось к SQL Server, а он понимает только SQL.

Бесплатные вебинары по схожей тематике:

Активный поиск первой работы в IT – советы и частые ошибки

Активный поиск первой работы в IT – советы и частые ошибки

Обзор полезных ресурсов для изучения C# и .NET с нуля

Обзор полезных ресурсов для изучения C# и .NET с нуля

Кто есть кто в IT компании. Структуры и роли

Кто есть кто в IT компании. Структуры и роли

Подключение к базе данных Oracle

При подключении к БД Oracle Вам нужно изменить имя некоторых классов, а именно SqlConnection на OracleConnection, SqlCommand на OracleCommand и SqlDataReader на OracleDataReader. Также вначале используйте System.Data.OracleClient.

Обзор ADO.NET

— нечто большее, чем надстройка над каким-нибудь существующим API-интерфейсом. Сходство с ADO минимально; классы и методы доступа к данным довольно существенно отличаются.

— это библиотека компонентов СОМ, получившая в последние несколько лет множество воплощений. ADO состоит, прежде всего, из объектов Connection, Command, Recordset и Field. С помощью ADO открывается соединение с базой данных, после чего некоторые данные извлекаются и помещаются в набор записей, состоящих из полей; эти данные затем претерпевают манипуляции и обновления на сервере, после чего соединение закрывается. Кроме того, ADO предлагает так называемый отключенный набор записей (disconnected record set), который используется, когда соединение с базой нежелательно удерживать открытым в течение длительного времени.

Существует несколько проблем, которые ADO не решает удовлетворительным образом. Наиболее заметная из них — громоздкость (в плане физического размера) отключенного набора записей. Потребность в этом средстве возрастает по мере развития веб-ориентированных вычислений, поэтому в данном случае понадобился свежий подход. Переход от ADO к ADO.NET не должен быть слишком трудным, поскольку между этими технологиями все же имеется некоторое сходство.

Более того, если вы используете SQL Server, существует замечательный набор управляемых классов, которые настроены на обеспечение максимальной производительности базы данных. Одного этого достаточно для перехода на ADO.NET.

ADO.NET поставляется с тремя пространствами имен клиента базы данных: одно для SQL Server, другое для источников данных Open Database Connectivity (ODBC) и третье для любой базы данных, доступной через OLE DB. Если выбрана база данных, отличная от SQL Server, отдавайте предпочтение OLE DB, если только не окажется, что нет другого выбора кроме ODBC. Если в качестве базы данных используется Oracle, можете посетить сайт Oracle .NET Developer и получить там их поставщика .NET — ODP.NET на странице www.oracle.com/technology/tech/windows/odpnet/index.html.

С точки зрения программиста, тело ADO.NET составляет базовая сборка с именем System.Data.dll. В этом двоичном файле находится значительное количество пространств имен, многие из которых представляют типы конкретного поставщика данных ADO.NET:

Сборка System.Data.dll

Большинство шаблонов проектов Visual Studio 2010 автоматически ссылаются на эту ключевую библиотеку доступа к данным. Однако для импортирования нужных пространств имен необходимо изменить кодовые файлы, например:

using System; using System.Data; using System.Data.SqlClient; . 

Учтите также, что кроме System.Data.dll, существуют и другие ориентированные на ADO.NET сборки (например, System.Data.OracleClient.dll и System.Data.Entity.dll), которые необходимо вручную указывать в текущем проекте с помощью диалогового окна Add Reference (Добавление ссылки).

Три стороны ADO.NET

Библиотеки ADO.NET можно применять тремя концептуально различными способами: в подключенном режиме, в автономном режиме и с помощью технологии Entity Framework. При использовании подключенного уровня (connected layer), кодовая база явно подключается к соответствующему хранилищу данных и отключается от него. При таком способе использования ADO.NET обычно происходит взаимодействие с хранилищем данных с помощью объектов подключения, объектов команд и объектов чтения данных.

Автономный уровень (disconnected layer), позволяет работать с набором объектов DataTable (содержащихся в DataSet), который представляет на стороне клиента копию внешних данных. При получении DataSet с помощью соответствующего объекта адаптера данных подключение открывается и закрывается автоматически. Понятно, что этот подход помогает быстро освобождать подключения для других вызовов и повышает масштабируемость систем.

Получив объект DataSet, вызывающий код может просматривать и обрабатывать данные без затрат на сетевой трафик. А если нужно занести изменения в хранилище данных, то адаптер данных (вместе с набором операторов SQL) задействуется для обновления данных — при этом подключение открывается заново для проведения обновлений в базе, а затем сразу же закрывается.

После выпуска .NET 3.5 SP1 в ADO.NET появилась поддержка нового API, которая называется Entity Framework (сокращенно EF). Технология EF показывает, что многие низкоуровневые детали работы с базами данных (например, сложные SQL-запросы) скрыты от программиста и отрабатываются за него при генерации соответствующего LINQ-запроса (например, LINQ с Entities).

Что такое ado

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

Важно отметить , что систем управления баз данных может быть множество:
MS SQL Server использует язык T-SQL
MySQL и Oracle используют язык PL-SQL.

Разные системы баз данных могут иметь разные типы данных .

Функционал ADO.NET построен таким образом, чтобы предоставить разработчикам общий интерфейс для работы с разными Базами данных .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *