Скачать 5.55 Mb.
|
Использование объекта DataReaderОбеспечение так называемого "доступа к ОТСОЕДИНЕННЫМ данным" – заслуга объекта DataReader. Дело в том, что получение данных приложением из базы данных все равно требует установления соединения, и это соединение должно быть максимально коротким по продолжительности и эффективным — быстро соединиться, быстро прочитать и запомнить информацию из базы, быстро разъединиться. Именно для этих целей используется в ADO .NET объект DataReader. После получения ссылки на объект DataReader можно организовать просмотр записей. Для получения необходимой информации из базы данных этого достаточно. У объекта DataReader имеется "указатель чтения", который устанавливается на первую запись результирующего набора записей, образовавшегося в результате выполнения метода ExecuteReader(). Очередная (в том числе и первая) запись набора становится доступной в результате выполнения метода Read(). В случае успешного выполнения этого метода указатель переводится на следующий элемент результирующей записи, а метод Read() возвращает значение true. В противном случае метод возвращает значение false. Все это позволяет реализовать очень простой и эффективный механизм доступа к данным, например в рамках цикла while. Если иметь в виду, что каждая запись состоит из одного и того же количества полей, которые к тому же имеют различные идентификаторы, то очевидно, что доступ к значению отдельного поля становится возможным через индексатор, значением которого может быть как значение индекса, так и непосредственно обозначающий данное поле идентификатор: while (myDataReader.Read()) { object myObj0 = myDataReader[5]; object myObj1 = myDataReader["CustomerID"]; } Важно! При таком способе доступа значения полей представляются ОБЪЕКТАМИ. Хотя, существует возможность получения от DataReader'а и типизированных значений. Следует иметь в виду, что DataReader удерживает монопольный доступ к активному соединению. Вот как всегда! Пообещали отсоединенный доступ к данным, а получаем постоянное соединение! Закрывается соединение методом Close(): myDataReader.Close(); Можно также настроить DataReader таким образом, чтобы закрытие соединения происходило автоматически, без использования команды Close(). Для этого при вызове метода ExecuteReader свойство объекта команды CommandBehavior должно быть выставлено в CloseConnection. Пример. Выборка столбца таблицы с помощью объекта DataReader. Предполагается наличие объекта OleDbCommand под именем myOleDb Command. Свойство Connection этого объекта определяет соединение с именем myConnection. Итак: // Активное соединение открыто. MyConnection.Open(); System.Data.OleDb.OleDbDataReader myReader = myOleDbCommand.ExecuteReader(); while (myReader.Read()) { Console.WriteLine(myReader["Customers"].ToString()); } myReader.Close(); // Активное соединение закрыто. MyConnection.Close(); Извлечение типизированных данныхСреди множества методов классов DataReader (SqlDataReader и OleDbDataReader) около десятка методов, имена который начинаются с приставки Get..., следом за которой – имя какого-то типа. GetInt32, GetBoolean, ... С помощью этих методов от DataReader можно получить и типизированные значения, а не только объекты базового типа! int CustomerID; string Customer; // Определить порядковый номер поля 'CustomerID' CustomerID = myDataReader.GetOrdinal("CustomerID"); // Извлечь строку из этого поля и прописать ее в переменную Customer Customer = myDataReader.GetString(CustomerID); DataAdapterDataAdapter – составная часть провайдера данных. То есть подсоединенная компонента объектной модели ADO .NET. Используется для заполнения объекта DataSet и модификации источника данных. Выполняет функции посредника при взаимодействии БД и объекта DataSet. Обеспечивает связь между источником данных и объектом DataSet. С одной стороны, база данных, с другой – DataSet. Извлечение данных и заполнение объекта DataSet – назначение DataAdapter'а. Функциональные возможности DataAdapter'а реализуются за счет:
Фактически, DataAdapter управляет обменом данных и обновлением содержимого источника данных. DataAdapter представляет набор команд для подключения к базе данных и модификации данных. Три способа создания DataAdapter:
Достойны особого внимания ЧЕТЫРЕ свойства этого класса, фактически представляющие команды БД. Через эти команды объект DataAdapter и воздействует на DataSet и Базу.
ТранзакцияПод транзакцией понимается неделимая с точки зрения воздействия на базу данных последовательность операторов манипулирования данными:
Прежде всего, необходимым условием применения транзакций как элементов модели ADO .NET является поддержка источником данных (базой данных) концепции транзакции. Обработка транзакций гарантирует целостность информации в базе данных. Таким образом, транзакция переводит базу данных из одного целостного состояния в другое. При выполнении транзакции система управления базами данных должна придерживаться определенных правил обработки набора команд, входящих в транзакцию. В частности, гарантией правильности и надежности работы системы управления базами данных являются четыре правила, известные как требования ACID.
Указанные выше правила реализуются непосредственно источником данных. На программиста возлагаются обязанности по созданию эффективных и логически верных алгоритмов обработки данных. Он решает, какие команды должны выполняться как одна транзакция, а какие могут быть разбиты на несколько последовательно выполняемых транзакций. Работа с транзакцией предполагает следующую последовательность действий:
Обеспечивается вызовом метода BeginTransaction() от имени объекта Connection, представляющего открытое соединение. В результате выполнения этого метода возвращается ссылка на объект – представитель класса Transaction, который должен быть записан в свойство Transaction всех объектов-команд, которые должны быть задействованы в данной транзакции.
Ниже приводится пример исполнения транзакции с помощью объекта соединения класса OleDbConnection с именем xConnection и пары объектов OleDbCommand с именами xCommand1 и xCommand2: System.Data.OleDb.OleDbTransaction xTransaction = null; try { xConnection.Open(); // Создается объект транзакции. xTransaction = xConnection.BeginTransaction(); // Транзакция фиксируется в командах. xCommand1.Transaction = xTransaction; xCommand2.Transaction = xTransaction; // Выполнение команд. xCommand1.ExecuteNonQuery(); xCommand2.ExecuteNonQuery(); // Если ВСЕ ХОРОШО и мы все еще здесь – ПРИНЯТЬ ТРАНЗАКЦИЮ! xTransaction.Commit(); } catch { // Если возникли осложнения – отменяем транзакцию. xTransaction. Rollback(); } finally { // В любом случае соединение закрывается. xConnection.Close(); } |
«Проектирование интегрированного урока английского языка и изобразительного... Ьного искусства для повышения мотивации обучающихся к изучению иностранного языка представляет собой межпредметный, внутриклассный,... |
Книга представляет собой квинтэссенцию двадцатилетие о опыта работы... Эта книга представляет собой подробное руководство позволяющее овладеть основами джйотиш древней ведической астролоши |
||
Учебное пособие автор: панкин сергей фёдорович объем 38,54 А. Л.... Книга написана в соответствии с требованиями государственного стандарта высшего профессионального образования по специальности 022200... |
Данное пособие представляет собой дополненный вариант печатного издания: Марченя П. П Данное пособие представляет собой дополненный вариант печатного издания: Марченя П. П. Культурология: Учеб пособие. М.: Мфюа, 2004... |
||
Основы информатики и вычислительной техники системы программирования Рассматриваются основные понятия языков программирования. Излагаются процедурный и объектный подходы в программировании. Более подробно... |
Книга представляет собой расширенное и переработанное издание пособий... Рецензенты: учитель русского языка и литературы В. Г. Богин (г. Зеленоград), психотерапевт Н. В. Жутикова (г. Новосибирск) |
||
Краткое содержание Глава 1 Книга «Психология и культура» представляет собой уникальный труд многих ученых из разных стран, который окажет неоценимую помощь... |
Урок исследование «Наблюдение за горящей свечой» Рассмотрение физических явлений, происходящих при горении свечи, представляет собой самый широкий путь, которым можно подойти к изучению... |
||
Конспект лекций доцента и. А. Волковой по курсу «системы программирования» Система программирования – комплекс программных инструментов и библиотек, который поддерживает создание и существование программного... |
Отчет по производственной практике 230201 Информационные системы и технологии Уровень интерфейса пользователя представляет собой набор компонентов в браузере. Уровень базы данных прдставляет собой бд mysql.... |
Поиск на сайте Главная страница Литература Доклады Рефераты Курсовая работа Лекции |