Навігація
Головна
 
Головна arrow Інформатика arrow Проектування і розробка web-додатків
< Попередня   ЗМІСТ   Наступна >

РОБОТА WEB-ДОДАТКІВ З БАЗАМИ ДАНИХ

Web-додатки в основному є додатками, функціонування яких ґрунтується на активній роботі з даними.

Взаємодія web-додатків з базами даних (БД) виконується, так само як і windows-додатків, за допомогою технології ADO.Net [4] та інших технологій, як, наприклад, Linq-to-SQL і Entity Framework. Робота з використанням ADO.Net може виконуватися як в режимі з підтримкою з'єднання (робота з провайдерами даних - класи Connection, Command і DataReader), так і в отсоединенном режимі (класи DataAdapter, DataSet, DataTable, DataView і т. П.). Застосовуючи такі класи, можна виконувати запити до БД і отримувати вибірки даних (наприклад, об'єкти класів DataReader або DataTable), які потім будуть використовуватися в програмному коді потрібним чином (для виведення в web-формі).

Основними засобами взаємодії web-додатків з даними є наступні:

  • 1) виконуються вирази виду <% # [вираз]%> і <% $ [вираз]%>;
  • 2) джерела даних і компоненти зв'язування з джерелами даних;
  • 3) зв'язування серверних ЕУ з джерелами даних;
  • 4) шаблони опису серверних ЕУ з використанням виконуваних виразів <% # Eval (...)%>.

Джерела даних

У web-додатку в якості джерел даних можуть використовуватися різні .NET-класи, і нt тільки ті, які організовують взаємодію з БД. У ASP.NET будь-який об'єкт, який підтримує інтерфейс IEnumerable, може бути пов'язаний з серверними ЕУ. Інтерфейс Enumerable визначає мінімальний API, який необхідний для перебору змісту джерела даних. Однак багато що зв'язуються об'єкти в дійсності реалізують більш досконалі версії IE- numerable, такі інтерфейси, як ICollection і IList [4]. Зокрема, серверні web-ЕП можуть бути пов'язані з об'єктами наступних класів:

  • • об'єкти колекції, - включно зі словниками (Dictionary), хеш-таблиці (Hashtable) і масиви (Array);
  • • об'єкти класу DataReader провайдерів ADO.NET;
  • • об'єкти контейнерних класів ADO.NET, таких як DataSet, DataTable і DataView;
  • • будь-які об'єкти, які виходять в результаті обробки запиту LINQ, що підтримують інтерфейс IQueryable.

Крім об'єктів перерахованих класів, джерелами даних можуть бути спеціальні компоненти зв'язування з джерелами даних (data source components). Компонент зв'язування з джерелом даних (Ксідо) - це серверний елемент управління, який призначений для взаємодії з пов'язаними з даними елементами управління і для приховування складності програмного зв'язування ЕУ з джерелом даних. Такі компоненти не тільки надають дані для серверних ЕУ, але вони також підтримують виконання цими ЕУ інших спільних операцій з даними, такі, як додавання нових даних, видалення, сортування та оновлення. Кожен Ксідо є обгорткою для деякого провайдера даних - реляційних БД, XML-документів, спеціальних об'єктних моделей або створених розробником класів. Підтримка створених розробником класів означає, що можна безпосередньо пов'язувати ЕУ з існуючими класами, наприклад з класами рівня бізнес-логіки або класами доступу до даних.

Всі компоненти зв'язування з джерелами даних підтримують вибірку даних за допомогою методу Select. Даний метод повертає об'єкт, який реалізує інтерфейс Enumerable.

Типи основних компонентів-джерел даних описані в табл. 4.6.

Таблиця 4.6

Основні компоненти зв'язування з джерелами даних

клас

опис

Access DataSource

Надає з'єднання з базою даних Microsoft Access. Успадковується від компонента SqlDataSource, але працює з MDB-файлами і використовує провайдер даних Jet 4.0 OLE DB для з'єднання з базою даних

EntityDataSource

Дозволяє використовувати результати обробки запитів за технологією Entity Framework

LinqDataSource

Дозволяє використовувати результати роботи будь-якого провайдера, який підтримує LINQ-запити, включаючи і технологію LINQ-to-SQL. Даний компонент дозволяє задати контекст даних, назва таблиці, параметри відображення полів таблиці на властивості класу і умови вибірки (where clause)

ObjectDataSource

Дозволяє зв'язуватися з створеними розробниками об'єктами .Net-класів бізнес-логіки, які повертають дані. Передбачається, що ці класи відповідають спеціальним шаблоном проектування і включають, наприклад, конструктор без параметрів і методи, які працюють певним чином

SqlDataSource

Надає з'єднання з провайдером даних ADO.NET, який повертає SQL-дані, включаючи джерела даних, доступні за допомогою технологій OLE DB і ODBC. Ім'я провайдера і рядок з'єднання задаються за допомогою властивостей компонент

SiteMapDataSource

Дозволяє зв'язуватися з будь-яким провайдером, який надає інформацію про карту сайту. За замовчуванням провайдер надає дані але мапі сайту, які містяться в XML-файлі, що зберігається в кореневій папці web-додатки

XmlDataSource

Дозволяє зв'язуватися з XML-файлами і рядками files and strings with or without schema information

Для конфігурації компонента SqlDataSource можна скористатися майстром, запускаються при натисканні на посилання "Configure Data Source" (рис. 4.15).

Ні першому кроці конфігурації елемента SqlDataSource необхідно визначити з'єднання з базою даних. Якщо існує вже створене з'єднання з джерелом даних, то його просто можна вибрати зі списку, в іншому випадку можна створити і налаштувати нове підключення до БД, натиснувши на кнопку "New Connection".

На другому кроці майстер пропонує зберегти сгенерированную рядок підключення до БД у файлі web.config. При необхідності можна відмовитися, а також змінити найменування змінної, що містить рядок підключення.

Використання компонента управління джерелом даних

Мал. 4.15. Використання компонента управління джерелом даних

Третій крок майстра дозволяє визначити запити до БД, що використовуються SqlDataSource для виконання операцій над даними. Зокрема, пропонується вибрати таблицю і згенерувати запит на вибірку з неї даних. Тут також можна визначити і свої власні запити на вибірку, додавання, видалення і оновлення даних або вказати використовувану збережену процедуру.

Цей майстер може також згенерувати стандартні запити, які використовуються для додавання, видалення і оновлення значень у зв'язаному джерелі даних, якщо обрані поля, які є первинними ключами таблиці. Для побудови цих запитів можна скористатися кнопкою Advanced. При цьому буде відкрито вікно, в якому можна встановити два властивості. Посилання "Generate INSERT, UPDATE, and DELETE statements" задає режим створення відповідних запитів.

Четвертий крок майстра дозволяє протестувати створений запит і після натискання на кнопку Finish завершити настройку елемента управління джерелом даних.

В результаті виконання цих операцій в опис шаблону форми буде додано опис компонента зв'язування з джерелом даних, наприклад,

<Asp: SqlDataSource ID-'SqlDataSource1! runat- "server"

ConnectionString = "<% $ ConnectionStrings: Northwind%>"

SelectCommand-'SELECT [EmployeelD], [LastName], [FirstName], [Address],

[City], [PostalCode] FROM [Employees] ""

</ Asp: SqlDataSource>

Після опису такого компонента з ним можна пов'язувати елементи управління. Для цього його властивості DataSourcelD необхідно задати ім'я об'єкта SqlDataSource.

Слід мати на увазі, що кожен компонент зв'язування з джерелом даних може використовуватися для з'єднання тільки з однією таблицею бази даних. Якщо в web-додатку потрібно незалежно витягувати або оновлювати інформацію з декількох таблиць, необхідно використовувати кілька таких компонент.

 
Якщо Ви помітили помилку в тексті позначте слово та натисніть Shift + Enter
< Попередня   ЗМІСТ   Наступна >
 
Дисципліни
Агропромисловість
Аудит та Бухоблік
Банківська справа
БЖД
Географія
Документознавство
Екологія
Економіка
Етика та Естетика
Журналістика
Інвестування
Інформатика
Історія
Культурологія
Література
Логіка
Логістика
Маркетинг
Медицина
Нерухомість
Менеджмент
Педагогіка
Політологія
Політекономія
Право
Природознавство
Психологія
Релігієзнавство
Риторика
Соціологія
Статистика
Техніка
Страхова справа
Товарознавство
Туризм
Філософія
Фінанси
Пошук