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

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

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

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

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

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

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

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

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

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

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

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

2007 г.

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

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

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

ADO .NET. Доступ к данным

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

Объектная модель ADO .NET реализует отсоединенный доступ к данным. При этом в Visual Studio .NET существует множество ВСТРОЕННЫХ мастеров и дизайнеров, которые позволяют реализовать механизмы доступа к БД еще на этапе разработки программного кода.

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

Концепция доступа к данным в ADO .NET основана на использовании двух компонентов:

  • НАБОРА ДАННЫХ (представляется объектом класса DataSet) со стороны клиента. Это локальное временное хранилище данных;
  • ПРОВАЙДЕРА ДАННЫХ (представляется объектом класса DataProvider). Это посредник, обеспечивающий взаимодействие приложения и базы данных со стороны базы данных (в распределенных приложениях – со стороны сервера).


ADO .NET. Объектная модель

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


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

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

DataTable

Каждый объект DataTable представляет одну таблицу базы данных. Таблица в каждый конкретный момент своего существования характеризуется:

  • СХЕМОЙ таблицы,
  • СОДЕРЖИМЫМ таблицы (информацией).

При этом СХЕМА таблицы (структура объекта DataTable) определяется двумя наборами:

  • множеством столбцов таблицы (набор DataColumns, состоящий из множества объектов DataColumn),
  • множеством ограничений таблицы (набор Constraints, состоящий из множества объектов Constraint).

События класса DataTable

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

  1. Изменения строк.
    • DataRowChanging – изменения вносятся в строку таблицы.

      Объявление соответствующего обработчика события имеет вид

       private static void Row_Changing( object sender, DataRowChangeEventArgs e )
    • DataRowChanged – изменения внесены в строку таблицы.

      Объявление соответствующего обработчика события имеет вид

       private static void Row_Changed( object sender, DataRowChangeEventArgs e )

    Пример программного кода для объекта – представителя класса DataTable:

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

    Параметр обработчика события DataRowChangeEventArgs обладает двумя свойствами (Action и Row), которые позволяют определить изменяемую строку и выполняемое над строкой действие. Действие кодируется значениями специального перечисления:

     enum RowDataAction
     {
      Add,
      Change,
      Delete,
      Commit,
      Rollback,
      Nothing
     }  
  2. Изменения полей (элементов в строках таблицы)
    • DataColumnChanging – изменения вносятся в поле строки данных.

      Объявление соответствующего обработчика события имеет вид

       private static void Column_Changing
                          (object sender, DataColumnChangeEventArgs e)
    • DataColumnChanged – изменения были внесены в поле строки данных.

      Объявление соответствующего обработчика события имеет вид

       private static void Column_Changed
                         (object sender, DataColumnChangeEventArgs e)

    Параметр обработчика события DataColumnChangeEventArgs e обладает тремя свойствами:

    СвойствоОписание
    ColumnGet. Объект-представитель класса DataColumn с изменённым значением
    ProposedValueGets, sets. Новое значение для поля в строке
    RowСтрока, содержащая запись с изменяемым (измененным) значением

    Аналогичный пример. Только теперь программируется реакция на модификацию столбца (поля), а не строки:

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

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

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

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

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

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

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

VPS в 21 локации

От 104 рублей в месяц

Безлимитный трафик. Защита от ДДоС.

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

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

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

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

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

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

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