Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

2007 г.

Основы ADO .NET
Лекция из курса «Введение в программирование на C# 2.0»

Марченко Антон Леонардович
Интернет-Университет Информационных Технологий, INTUIT.ru

Назад Оглавление Вперёд

DataSet в свободном полете

Листинг 7: html, txt

Естественно, что данная последовательность действий может повторяться сколь угодно много раз, пока не будут созданы и не заполнены все члены объекта DataSet.

Далее будет рассмотрен пример использования объекта DataSet для прочтения информации из текстового файла. При этом используется метод класса string Split(), который обеспечивает выделение из исходной строки подстрок с их последующим преобразованием в символьные массивы. Критерием выделения подстроки является массив символов-разделителей или целочисленное значение, определяющее максимальную длину подстроки.

Применение класса DataSet

Листинг 8: html, txt

Подсоединенные объекты модели ADO .NET. Провайдеры

Поставщик данных для приложения (Провайдер) – объект, предназначенный для обеспечения взаимодействия приложения с хранилищем информации (базами данных).

Естественно, приложению нет никакого дела до того, где хранится и как извлекается потребляемая приложением информация. Для приложения источником данных является тот, кто передает данные приложению. И как сам этот источник эту информацию добывает – никого не касается.

Источник данных (Data Provider) – это набор взаимосвязанных компонентов, обеспечивающих доступ к данным. Функциональность и само существование провайдера обеспечивается набором классов, специально для этой цели разработанных.

ADO .NET поддерживает два типа источников данных, соответственно, два множества классов:

  • SQL Managed Provider (SQL Server.NET Data Provider) – для работы с Microsoft SQL Server 7.0 и выше. Работает по специальному протоколу, называемому TabularData Stream (TDS) и не использует ни ADO, ни ODBC, ни какую-либо еще технологию. Ориентированный специально на MS SQL Server, протокол позволяет увеличить скорость передачи данных и тем самым повысить общую производительность приложения;
  • ADO Managed Provider (OleDb.NET Data Provider) – для всех остальных баз данных. Обеспечивает работу с произвольными базами данных. Однако за счет универсальности есть проигрыш по сравнению с SQL Server Provider, так что при работе с SQL Server рекомендовано использовать специализированные классы.

В следующих разделах приводится описание составных элементов провайдера.

Connection

Объект – представитель класса Connection представляет соединение с источником (базой) данных и обеспечивает подключение к базе данных. Visual Studio .NET поддерживает два класса:

  • SQLConnection (обеспечивает подключение к SQL Server 7.0 и выше),
  • OleDbConnection (обеспечивает подключение к прочим вариантам БД).

Компонента Connection (независимо от того, представителем какого класса она является) имеет свойство ConnectionString, в котором фиксируется вся необходимая для установления соединения с БД информация. Кроме того, поддерживается ряд методов, позволяющих обрабатывать данные с применением транзакций.

Свойства объекта Connection позволяют:

  • задавать реквизиты пользователя;
  • указывать расположение источника данных.

Методы объекта позволяют управлять соединением с источником данных.

В процессе соединения с помощью объекта – представителя класса OleDbConnection (аналогично SQLConnection) создается и инициализируется соответствующий объект с использованием одного из вариантов конструктора и строки соединения.

Формирование строки и последовательность действий при инициализации объекта соединения – дело техники. Главное – это чтобы свойство ConnectionString в результате получило бы ссылку на строку символов, содержащую необходимую для установления соединения информацию.

Листинг 9: html, txt

Свойства, методы и события класса OleDbConnection

Свойства
ConnectionStringstringСтрока, определяющая способ подключения объекта к источнику данных
ConnectionTimeoutInt32Интервал времени, в течение которого объект пытается установить соединение с источником данных (только для чтения)
Containerstring Get. Возвращает объект IContainer, который содержит объект Component
Databasestring Gets текущей базы данных или базы, которая использовалась после установления соединения
DataSourcestring Get. Имя сервера или имя файла-источника данных. Все зависит от того, с каким хранилищем информации ведется работа. Серверное хранилище данных (SQL Server, Oracle) – имя компьютера, выступающего в роли сервера. Файловые БД (Access) – имя файла
Providerstring Gets имя OLE DB провайдера, которое было объявлено в "Provider= ..." clause строки соединения
ServerVersionstring Get. Строка с информацией о версии сервера, с которым было установлено соединение
Sitestring Get или set. Объект ISite с информацией о функциональных возможностях узла
State string Gets текущее состояние соединения

Текущее состояние соединения кодируется как элемент перечисления ConnestionState. Список возможных значений представлен ниже.

Имя членаОписаниеValue
BrokenСоединение с источником данных разорвано.Подобное может случиться только после того, как соединение было установлено. В этом случае соединение может быть либо закрыто, либо повторно открыто16
Closed Соединение закрыто 0
Connecting Идет процесс подключения (значение зарезервировано) 2
Executing Соединение находится в процессе выполнения команды (значение зарезервировано.) 4
Fetching Объект соединения занят выборкой данных (значение зарезервировано) 8
Open Соединение открыто1
Открытые методы
BeginTransactionПерегружен. Начинает транзакцию базы данных
ChangeDatabase Изменяет текущую базу данных для открытого OleDbConnection
Close Закрывает подключение к источнику данных. Это рекомендуемый метод закрытия любого открытого подключения
CreateCommand Создает и возвращает объект OleDbCommand, связанный с OleDbConnection
CreateObjRef (унаследовано от MarshalByRefObject)Создает объект, который содержит всю необходимую информацию для конструирования прокси-сервера, используемого для коммуникации с удаленными объектами
Dispose (унаследовано от Component)Перегружен. Освобождает ресурсы, используемые объектом Component
EnlistDistributed Зачисляет в указанную транзакцию в качестве
Transaction распределенной транзакции
Equals (унаследовано от Object)Перегружен. Определяет, равны ли два экземпляра Object
GetHashCode (унаследовано от Object)Служит хэш-функцией для конкретного типа, пригоден для использования в алгоритмах хэширования и структурах данных, например в хэш-таблице
GetLifetimeService (унаследовано от MarshalByRefObject) Извлекает служебный объект текущего срока действия, который управляет средствами срока действия данного экземпляра
GetOleDbSchemaTableВозвращает сведения схемы из источника данных так же, как указано в GUID, и после применения указанных ограничений
GetType (унаследовано от Object)Возвращает Type текущего экземпляра
InitializeLifetimeService (унаследовано от MarshalByRefObject)Получает служебный объект срока действия для управления средствами срока действия данного экземпляра
OpenОткрывает подключение к базе данных со значениями свойств, определяемыми ConnectionString
ReleaseObjectPoolOleDb Connection Статический. Означает, что пул объектов может быть освобожден, когда последнее основное подключение будет освобождено
ToString (унаследовано от Object)Возвращает String, который представляет текущий Object
Защищенные методы
Dispose Перегружен. Переопределен. Освобождает ресурсы, используемые объектом OleDbConnection
Finalize (унаследовано от Component) Переопределен. Освобождает неуправляемые ресурсы и выполняет другие действия по очистке, перед тем как пространство, которое использует Component, будет восстановлено сборщиком мусора.

В языках C# и C++ для функций финализации используется синтаксис деструктора

GetService (унаследовано от Component) Возвращает объект, представляющий службу, которую предоставляет Component или его Container
MemberwiseClone (унаследовано от Object) Создает неполную копию текущего Object
События
Disposed Это событие сопровождает процесс удаления объекта
InfoMessage Некоторые СУБД (SQL Server) поддерживают механизм информационных сообщений. Это событие происходит при отправке провайдером некоторых сообщений
StateChangeВозникает при изменении состояния соединения

Назад Оглавление Вперёд

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...