Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Объекты ADO.NET




UPDATE, DELETE) или изменение там же структур данных (например, SQL-операторы CREATE TABLE, ALTER TABLE и т. д.). Выгоднее выполнять такие операторы не поодиночке, а совместно отдельным пакетом, с единовременной установкой соединения и его последующим разрывом по выполнении всего пакета. Соединение с источником данных нельзя разрывать только до окончания выполнения транзакции – группы физически обособленных, но логически единых действий. Если хотя бы одно из таких действий заканчивается ошибкой, результаты всех прочих рассматриваемых в контексте транзакций, отменяются. Как правило, транзакции используются для внесения связанных по смыслу изменений в группу различных таблиц, размещенных в одном или нескольких источниках данных. Процесс установки соединения достаточно ресурсоемок. Чтобы минимизировать затраты ресурсов, закрытое в приложении соединение фактически не высвобождается, а помещается в пул – динамически разделяемую область памяти. Когда соединение с такими же параметрами нужно этому приложению или другому, работающему параллельно, объект соединения запрашивается из пула. Будучи снова закрыто в приложении, соединение опять поступает в пул. Так обеспечивается взаимодействие множества параллельно работающих пользователей и источника данных. Из вышесказанного можно сделать следующие выводы:

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

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

• Необходимо – где это возможно – использовать в приложениях соединения с одинаковыми параметрами. Такие соединения будут выбираться из пула вместо того

чтобы создаваться всякий раз заново.

Объект Connection представляет соединение с БД.Все данные, необходимые для открытия канала связи с БД, хранятся в свойстве ConnectionSiring объекта Connection, этот объект также поддерживает ряд методов, позволяющих обрабатывать данные с применением транзакций.

Объект Command позволяет исполнять команды над БД, используя для обмена данными

установленное соединение. При помощи объектов Command можно исполнять хранимые процедуры, команды SQL, а также операторы, возвращающие целые таблицы. Объект Command поддерживает три метода:

ExecuteNonQuery. Исполняет команды, не возвращающие данные, например INSERT, UPDATE и DELETE;

Execute Scalar. Исполняет запросы к БД, возвращающие единственное значение;

Execute Reader. Возвращает результирующий набор через объект DataReader.

Объект DataReader предоставляет поток с набором записей БД, доступный только для однонаправленного чтения. Б отличие от других компонентов провайдера данных, создавать экземпляры DataReader напрямую не разрешается, его можно получить при помощи методов ExecuteReader объекта Command: метод SqlCommand.ЕхесиteReader возвращает объект SglData Reader, а метод OleDbCommand. ExecuteReader — объект OleDbDataReader. Если записывать содержимое объекта DataReader на диск не требуется, строки с данными можно передавать приложению напрямую Поскольку в любой момент времени в памяти находится только одна строка, использование объекта DataReader почти не снижает производительность системы, но требует монопольного доступа к открытому объекту Connection в течение времени жизни объекта DataReader.

DataAdapter — это основной класс ADO.NET, обеспечивающий доступ к отсоединенным данным. В сущности, он выполняет функции посредника во взаимодействии между БД и объектом DataSet. При вызове метода Fill объект DataAdapter заполняет Data Table или DataSet данными, полученными из БД. После обработки данных, загруженных в память, можно записать модифицированные записи в БД, вызвав метод Update объекта DataAdapter. У DataAdapter имеются четыре свойства, представляюших команды БД:

Select Command. Содержит текст или объект команды, осуществляющей выборку данных из БД; при вызове метода Fill эта команда исполняется и заполняет объект DataTable или объект DataSet,

• Insert Command. Содержит текст или объект команды, осуществляющий вставку строк в таблицу;

DeleteCommand. Содержит текст или объект команды, осуществляющий удаление строки из таблицы;

UpdateCommand. Содержит текст или объект команды, осуществляющий обновление значений в БД.

При вызове метода Update все измененные данные копируются из объекта DataSet в БД с исполнением соответствующей команды InsertCommand, DeleteCommand или UpdateCommand.

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

 




Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 423; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.