Войти



Поиск

Реклама

функциональный ssang yong kyron с круиз-контролем - распродажа автомобилей!|canon 60d

Полезное:

Новые статьи

Опечатка?

Выделите текст и нажмите Shift+Enter.
И мы в ближайшее время ее исправим!

Счетчики


Адаптер таблицы

Как видно из показанных здесь закрытых элементов класса, адаптер таблицы просто содержит адаптер данных, соединение и массив объектов команд, которые будут использоваться для исполнения запросов, представленных методами адаптера таблицы. Экспонируемый классом открытый API включает типизированные методы Fill, GetData и Update, которые будут корректно работать только с сильно типизированной таблицей CustomersDataSet.CustomersDataTable. Кроме того, определены еще два метода Update; они позволяют работать с нетипизированными объектами DataRow в контексте ускоренных операций, например, когда вы применяете метод Select только для выборки некоторых строк, которые хотите использовать для обновлений. Метод Select возвращает массив объектов DataRow. Можно воспользоваться методами Update, которые принимают в качестве параметра массив сырых объектов DataRow, так что вам не нужно будет приводить их к определенному в типизированном наборе данных производному классу - для того только, чтобы передать методу Update адаптера таблицы.

Адаптер таблицы предусматривает также методы Insert, Update и Delete, которые принимают отдельные параметры для каждого столбца, а не строку данных. Эти методы позволяют использовать адаптер таблицы в качестве компонента доступа к данным, даже если вы не работаете с экземпляром типизированного набора данных или таблицей. Вы можете каким-то образом получить в своем приложении значения, используемые для исполнения запроса, и передать значения этим методам. Обратите внимание, что список параметров данного метода Update включает в себя как значения, используемые для обновления, так и исходные значения в соответствующих столбцах. Причина в том, что стандартные запросы, генерируемые для команд адаптера таблицы, используют по умолчанию проверки оптимистической конкуренции, определяемые конструктором. В частности, они сравнивают текущее значение в каждом столбце базы данных с исходными значениями, чтобы выяснить, не произошло ли изменений с момента извлечения данных, и если да, выбрасывают исключение DbConcurrencyException. Если вы не хотите использовать такой подход к оптимистической конкуренции, то можете, как описывается далее в этой главе, генерировать собственные запросы адаптера таблицы, которые делают что-то другое, например, проверяют только столбец datetime или timestamp.

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

Заполнение и обновление типизированного набора данных при помощи адаптера таблицы

Если вы уже создали при помощи конструктора наборов типизированный набор данных и ассоциированный с ним адаптер таблицы, вы можете легко загрузить в него данные того источника данных, из которого было создано определение набора данных. Из листинга 2.5 видно, насколько легко программировать с типизированными наборами данных и адаптерами таблиц.




Newer news items:
Older news items:

 
Главная Страница Контактная Информация Поиск по сайту Контактная Информация Поиск по сайту