Використання DataSet

Вище вже мовилося про те, що DataSet складається з таблиць, які, у свою чергу, складаються з рядків, а вони, у свою чергу, - із стовпців. Кожен з перерахованих елементів реалізований у вигляді класу. Для управління автономними змінами DataSet відстежує інформацію про версію кожного об'єкту DataRow. Це означає, що коли відбувається редагування рядка, її початкове значення зберігається в пам'яті, а рядок позначається як змінена. Аналогічні дії відбуваються і при додаванні і зміні рядків DataTable. Надалі в базу даних можна перенести значення тільки тих рядків, які торкнулися змінами. Таким чином, DataSet ніколи не підтримує постійного з'єднання з базою даних.

Для витягання даних з бази даних і наповнення ними об'єкту DataSet необхідно використовувати ще один об'єкт DataAdapter, який окрім іншого дозволяє оновлювати дані БД на основі внесених до DataSet змін.

6.3.3. Клас DataAdapter|

DataAdapter є сполучною ланкою між базою даних і DataSet. Точніше, він зв'язує БД і об'єкт DataTable, розташований усередині DataSet.

DataAdapter містить три основні методи, які дозволяють йому виконувати всі необхідні операції, пов'язані з витяганням і оновленням даних.

Fill Виконання запиту типа Select, визначеного у властивості SelectCommand, і додавання таблиці, що отримується в результаті даного запиту, в DataSet.
FillSchema() Виконання запиту типа Select, текст якого розташований у властивості SelectCommand, і додавання таблиці, яка містить тільки структуру даних, отриманих в результаті виконання запиту, в DataSet.
Update() Застосовує всі зміни, внесені до DataTable, до джерела даних. При цьому виконуються команди вставки, оновлення і видалення, розташовані у властивостях InsertCommand, UpdateCommand, DeleteCommand.

Розглянемо приклад використання об'єктів DataSet і DataAdapte для витягання даних з БД, наповнення DataSet і відображення даних на сторінці Web-додатка|.

Перш за все, необхідно встановити підключення до джерела даних. Для цього потрібно використовувати рядок підключення, а також об'єкт Connection. У даному прикладі підключення відбуватиметься до бази даних Test_Db, розташованої на локальному сервері SQL Server Express 2005:

string strCon = "Server=.\SQLEXPRESS;Integrated Security =S SPI; Initial Catalog=Test_Db";string sqlString = "SELECT| * FROM| Товари";SqlConnection sqlCon = new SqlConnection(strCon);

Створимо об'єкт DataAdapter і передамо йому як параметри рядок запиту, а також рядок підключення до БД:

SqlDataAdapter da = new SqlDataAdapter (sqlString,sqlCon);

Тепер необхідно створити об'єкт DataSet і заповнити його даними за допомогою DataAdapter:

DataSet ds = new DataSet|();da.Fill(ds, "Goods");

З наведеного вище прикладу видно, що метод Fill об'єкту da як параметри використовує ім'я об'єкту DataSet, куди необхідно помістити дані, виконання запиту, який визначений в рядку sqlString, що повертаються в результаті. У другому параметрі можна вказати ім'я, яке буде зіставлено з таблицею, створеною в DataSet. З прикладу видно, що в даному випадку не використовується явний виклик методу Open об'єкту Connection - даний метод викликається неявно при виконання методу Fill. Таким чином, DataAdapter спершу відкриває з'єднання з БД, потім виконує необхідні маніпуляції з даними, після чого закриває відкрите раніше з'єднання. Якщо по якихось причинах такий алгоритм взаємодії з базою даних потрібно змінити, необхідно до виклику методу Fill відкрити з'єднання з БД. В цьому випадку DataAdapter використовуватиме вже існуюче з'єднання.

Після того, як необхідний набір даних витягував з бази даних, його необхідно відображувати на Web-сторінці. Для цього можна скористатися способом, описаним раніше, при розгляді об'єкту DataReader. Проте в даному випадку набагато ефективнішого використання можна добитися із застосуванням можливостей прив'язки даних до візуальних об'єктів, здатних виводити дані на екран. Основна ідея, лежача в основі прив'язки даних, полягає в створенні зв'язку між об'єктом даних і елементом управління. Всю подальшу роботу, пов'язану з витяганням даних і виводом їх на екран, виконує ASP.NET Розгледимо основні способи прив'язки даних і особливості їх виводу на екран, реалізовані в різних елементах управління.


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



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