Власна база даних на основі xml файлу
Коли створюються програми, що використовує одну або кілька таблиць баз даних та (або) таблиці бази даних потрібні тільки одному з додатком (обмеженому числу додатків), то досить незручно при супроводі додатки відстежувати установки клієнтського програмного забезпечення для роботи з базами даних, виконувати відповідні налаштування, вирішувати питання безпеки і т.д. і т.п.
У Visual Studio Net контрола, або елемента подібного компоненту TCLientDataSet, немає. Але все, що дозволяв компонент TCLientDataSet з таким же успіхом можна виконати, використовуючи XML файли. Ми вже користувалися можливістю завантаження даних з таблиць БД в DataSet і зворотного збереження даних. У цьому розділі ми будемо використовувати завантаження даних з XML файлу в DataSet, зазначивши, що після завантаження даних, доступ до даних нічим не відрізняється від роботи з даними при їх завантаженні з таблиць БД. З огляду на можливість роботи з двійковими даними, описану в попередньому розділі, ми можемо безпосередньо приступити до опису створення власної бази даних на основі XML файлу і роботи з нею.
Параграф 1. Створення файлу бази даних
Рис.1 Рішення додатки
Звернемо увагу на тег "NewDataSet". Оскільки ми працюємо з DataSet, то при збереженні вмісту DataSet в XML файл, даний тег додається автоматично. Крім цього файл має теги "dog" - один на кожен екземпляр, "id" - ідентифікує номер запису, "name" - ім'я собачки, "pic" - малюнок, "picext" - формат малюнка і "price" - ціна.
Параграф 2. Завантаження XML файлу, введення і збереження даних
На початку визначимо всі глобально використовувані в межах програми змінні:
У обробнику події Load форми будемо виконати початкове завантаження XML файлу:
Звернемо увагу на параметр методу ReadXml "XmlReadMode.Auto" - він дозволить DataSet правильно створити схему з урахуванням значень мегатегов, а також на значення "Encoding.UTF8". Причина використання саме цієї кодування - DataSet за замовчуванням буде зберігати дані в кодуванні UTF8.
Отже, на даному етапі, порожній XML файл завантажений в DataSet з ім'ям MyDataSet. Виконаємо вибір малюнка в PictureBox для його подальшого збереження в файл і введення імені і ціни в контроли TextBox, для чого використовуємо наступні обробники подій:
Залишилося зберегти дані.
Файл XML матиме вигляд:
Звернемо увагу, що кодування файлу, як і передбачалося, "UTF8". Якщо ми хочемо мати файл нашої бази даних більше Новомосковскемим, поступимо таким чином:2. При збереженні DataSet замість рядків
XML файл буде виглядати наступним чином:
Параграф 3. Відображення даних
Як приклад наведемо відображення даних за запитом. В якості запиту будемо використовувати інформацію про ID записи, яку будемо вводити в TextBox1:
Звернемо увагу на формат малюнка (документа). Ми вже відзначали, що точно таким чином можна зберігати і відновлювати будь-які дані (Web сторінки, Word або Excel документи і т.д. і т.п.). При відображенні, збереженні і перетвореннях ця інформація нами може бути використана. Що стосується малюнків, то докладно про перетворення форматів можна подивитися в розділі Про можливості перетворень графічних файлів при їх відображенні на сайті (все що стосується перетворень так само відноситься до Web і Windows рішенням).
Рис.2 Виконання програми
І останнє зауваження. Описаний спосіб роботи з XML даними з використанням DataSet може бути зручною заміною ini-фалів додатків. По крайней мере, доступ до рядка параметра на ім'я в DataSet значно простіше, ніж його позиційний або лексичний пошук в ini-файлі.