Основы ADO.Net

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 06.01.2023
Размер файла 407,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Файл не выбран
Обзор

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Основы ADO.Net

Работа с базами данных

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

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

Создание подключения

Чтобы подключаться к базе данных, нам необходимо создать и использовать объект SqlConnection:

В конструктор объекту SqlConnection передается строка подключения, которая инициализирует объект. Чтобы использовать этот объект и подключаться к базе данных, мы должны выполнить его метод Open(), а после завершения работы с базой данных нам надо вызвать метод Close() для закрытия подключения. В случае возникновения ошибок закрытие подключения происходит в блоке finally.

В качестве альтернативного метода можно использовать конструкцию using, которая автоматически закрывает подключение:

Асинхронное подключение

Для создания асинхронного подключения необходимо использовать асинхронный метод OpenAsync():

Получение информации о подключении

Объект SqlConnection обладает рядом свойств, которые позволяют получить информацию о подключении:

Консольный вывод в моем случае:

Возможные ошибки и их решение

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

Unhandled Exception: System.ArgumentException: Keyword not supported...

Данная ошибка вызвана из-за неправильного указания параметров строки подключения, причем неважно, как мы определяем строку подключения - в коде или в файле конфигурации. В сообщении об ошибке, как привило, говорится, какой параметр указан неправильно, и в этом случае его надо исправить.

Еще одна распространенная ошибка говорит о том, что данной базы нет или по крайней мере нет подобной базы данных для текущего пользователя:

Cannot open database "название базы данных" requested by the login. The login failed.

Login failed for user 'название_пользователя'

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

И еще одна часто встречающаяся ошибка:

A network-related or instance-specific error occurred while establishing a connection to SQL Server.

The server was not found or was not accessible...

В этом случае, как правило, SQL Server не запущен. И его надо запустить или перезапустить, через панель служб.

Также может быть, что в строке подключения указано неправильное имя сервера, либо MS SQL Server вообще не установлен.

Пул подключений

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

Пул подключений позволяет использовать ранее созданные подключения. Когда менеджер подключений, который управляет пулом, получает запрос на открытие нового подключения с помощью метода Open(), то он проверяет все подключения пула.

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

После закрытия подключения с помощью метода Close() закрытое подключение возвращается в пул подключений, где оно оно готово к повторному использованию при следующем вызове метода Open().

Например, несмотря на закрытия подключения программа в обоих случаях будет использовать одно и то же подключение:

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

Все подключения в пуле различаются по нескольким признакам:

· строка подключения

· учетные записи, используемые при подключении

· процесс приложения

В следующем примере в первых двух блоках using будет использоваться одно и то же подключение из пула, поскольку строка подключения будет совпадать:

база данных подключение ado.net

Если параметр Min Pool Size не указан в строке подключения или его значение равно 0, то подключения в пуле будут закрыты после периода отсутствия активности (4-8 минут), либо если разорвана связь с сервером базы данных. Но если значение параметра Min Pool Size больше 0, пул подключений не удаляется, пока не будет выгружен домен приложения AppDomain и не завершится процесс.

Размещено на Allbest.ru

...

Подобные документы

  • Подключение к серверу баз данных, основные функции. Использование PHP в сочетании с сервером Apache. Закрытие соединения, осуществляемое с помощью функции mysql_close. Обработка ошибок подключения к серверу. Создание таблицы, выполнение SQL-запроса.

    презентация [130,8 K], добавлен 21.06.2014

  • Особенности интерфейсов подключения периферийных устройств ввода/вывода и хранения информации. Механизм передачи данных, способность к одновременной обработке данных нескольких приложений как важная характеристика. Многозадачность в настольных системах.

    статья [32,8 K], добавлен 05.05.2010

  • Внутренняя архитектура API WEBRTC, сравнение с аналогичными технологиями (Flash, Java). Создание подключения и получение локального потока, его отправка и получение. Проектирование Web-приложения, внедряемого на сторонний ресурс. Описание WebRTC-сервиса.

    дипломная работа [45,7 K], добавлен 04.07.2014

  • Проблема автоматизации нахождения ошибок подключения к корпоративной сети клиентских рабочих мест в ОАО "Сбербанк России". Требования к структуре и функционированию системы. Описание информационной модели. Выбор программного обеспечения для реализации.

    дипломная работа [3,6 M], добавлен 25.07.2015

  • Использование приложения "IBExpert" для создания, удаления, регистрации, подключения, извлечения метаданных, резервного копирования и восстановления базы данных СУБД Firebird. Основные SQL-операторы для создания, подключения и удаления базы данных.

    лабораторная работа [280,1 K], добавлен 02.06.2015

  • Классификация баз данных. Выбор системы управления базами данных для создания базы данных в сети. Быстрый доступ и получение конкретной информации по функциям. Распределение функций при работе с базой данных. Основные особенности иерархической модели.

    отчет по практике [1,2 M], добавлен 08.10.2014

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

    курсовая работа [4,6 M], добавлен 14.05.2014

  • Изучение основ работы с документами: создание колонтитулов и таблиц, введение, редактирование и форматирование формул в Ms Word (с помощью средств Microsoft Equation), формирование содержания документа. Ознакомление с программой Excel и базами данных.

    контрольная работа [2,2 M], добавлен 14.02.2010

  • Обзор существующих систем управления базами данных. Концептуальное, логическое и физическое проектирование и создание базы данных. Обзор языков программирования. Создание и реализация клиентского приложения с помощью выбранного языка программирования.

    дипломная работа [2,4 M], добавлен 02.06.2013

  • Локальная и городская вычислительная сеть. Компьютерные сети, основанные на равноправии участников. Единица измерения информации. Архитектурное решение для подключения внешних устройств хранения данных. Терминаторы для предотвращения отражения сигнала.

    реферат [17,2 K], добавлен 19.09.2014

  • Автоматизация сбора и обработки данных. Основы, таблицы и средства для работы с базами данных. Инструментальные средства и компоненты. Технология создания приложения. Работа с псевдонимами и со связанными таблицами. Система управления базами данных.

    методичка [1,5 M], добавлен 06.07.2009

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

    реферат [216,8 K], добавлен 29.04.2010

  • Разработка первой программы для отправки электронной почты по сети. Развитие протоколов передачи данных. Роль Джона Постела в разработке и стандартизации сетевых протоколов. Способы подключения к Интернету. Настройка СТРИМ. Доступ через сотовую связь.

    презентация [410,8 K], добавлен 30.04.2014

  • Теоретические сведения и основные понятия баз данных. Системы управления базами данных: состав, структура, безопасность, режимы работы, объекты. Работа с базами данных в OpenOffice.Org BASE: создание таблиц, связей, запросов с помощью мастера запросов.

    курсовая работа [3,2 M], добавлен 28.04.2011

  • Особенности разработки инфологической модели и создание структуры реляционной базы данных. Основы проектирования базы данных. Разработка таблиц, форм, запросов для вывода информации о соответствующей модели. Работа с базами данных и их объектами.

    курсовая работа [981,4 K], добавлен 05.11.2011

  • Виды языков программирования, их функциональные особенности и отличительные признаки, сферы практического применения. Язык для работы с базами данных SQL. Синтез компьютерной модели спроектированной базы данных, оценка ее эффективности и значение.

    контрольная работа [365,4 K], добавлен 24.02.2015

  • Предназначение глобальной вычислительной сети Wide Area Networks. История создания Интернет, способы подключения к нему компьютера. Поиск информации, ведение бизнеса и дистанционного обучения. Структура сетей ARPANET, NSFNET. Протоколы и адреса Интернета.

    контрольная работа [565,1 K], добавлен 24.02.2014

  • Основные возможности системы управления реляционными базами данных (СУБД) Microsoft Access. Пользовательский интерфейс MS Access 2003. Команды панели инструментов окна БД. Область возможных режимов создания объектов. Создание таблиц в базе данных.

    реферат [5,5 M], добавлен 08.11.2010

  • Классификация и разновидности типов подключения к интернету, используемых на современном этапе, степень их распространения в Беларуси. Оценка главных преимуществ и недостатков каждого из типов подключения, особенности и средства, специальные условия.

    реферат [29,4 K], добавлен 05.05.2012

  • Иерархические, сетевые и реляционные модели данных. Различия между OLTP и OLAP системами. Обзор существующих систем управления базами данных. Основные приемы работы с MS Access. Система защиты базы данных, иерархия объектов. Язык программирования SQL.

    курс лекций [1,3 M], добавлен 16.12.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.