Від'єднані набори даних

Логіка взаємодії клієнтського додатку, що розгледіла раніше, з базою даних, заснована на з'єднанні, виправдана для реалізації однобічного зв'язку з базою даних. Це може бути або отримання даних, або виконання запитів, пов'язаних з внесенням змін до неї. Реалізація ж складних операцій взаємодії з БД при цьому є дуже трудомістким процесом і вимагає написання великої кількості програмного коду, його відладки і так далі ADO.NET надає досконаліші способи організації двосторонньої взаємодії додатка з базою даних, заснованою на від'єднаних наборах даних.

Основною ідеєю використання від'єднаних наборів даних є зміна алгоритмів взаємодії додатка з базою даних за рахунок підключення до набору даних, виконання запиту і створення копії даних на стороні клієнта, відключення від БД, здійснення маніпуляцій з даними на стороні клієнта, при необхідності внесення змін до бази даних, підключень до неї, передачі змін і відключення. Таким чином, всі основні маніпуляції з даними відбуваються у від'єднаному наборі даних, який є копією даних, що зберігаються в БД, а внесення змін відбувається в одній пакетній операції. Все це зменшує час, протягом якого має бути відкрите з'єднання з БД, прискорює роботу і спрощує логіку взаємодії додатка з даними. Розгледимо об'єкт ADO|.NET, реалізовуючий даний механізм.

6.3.1. Клас DataSet|

Об'єктом DataSet є контейнер, що містить об'єкти DataTable і Relation. DataTable є таблицею, що складається з рядків і стовпців. Рядки таблиці представлені об'єктом DataRow, який, у свою чергу, є колекцією стовпців таблиці (об'єкт DataColumn). Дані в DataSet від'єднані від БД. Всі зміни даних кэшуються в об'єктах DataRow. При виникненні необхідності передачі змін в даних об'єкту DataSet існує можливість передачі частки даних, що тільки змінилася, що дозволяє значно економити ресурси каналу зв'язку, оскільки в цьому випадку передається набагато менший об'єм даних. Узагальнюючи все вищесказане, можна зробити вивід про те, що використання об'єкту DataSe у ряді випадків виявляється ефективнішим, ніж DataReader. Найбільш типовими ситуаціями, в яких рекомендується застосовувати об'єкт DataSet, є наступн:

1. Необхідність реалізації серіалізації даних на диск. DataSet дозволяє легко зберігати дані у файлі XML. При цьому можливі варіанти збереження або тільки даних, або тільки структури даних, або і того і іншого.

2. Необхідність організації навігації по набору даних в двох напрямах. Як уже згадувалося, DataReader забезпечує переміщення по набору тільки вперед. З допомогою ж DataSet можлива організація посторінкового перегляду даних.

3. Необхідна прив'язка декількох елементів управління до одного набору даних. DataSet, на відміну від DataReader, містить засоби організації сортування і фільтрації даних.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: