об'єкт.
/// void BuildXDoc ()
{
{= new XDocument (new XElement ("DataBase"));. Root.SetAttributeValue ("name", baseName);
tablesNames = SQLiteProvider.GetTablesNames (appPath);. Root.SetAttributeValue ("tablesCount", tablesNames.Count);
(string s in tablesNames)
{xEl1 = new XElement ("Table");. SetAttributeValue ("name", s);
= "SELECT * FROM" + s; [] drs = SQLiteProvider.Query (appPath, query);
. SetAttributeValue ("columnsCount", drs [0]. Table.Columns.Count);
(DataRow dr in drs)
{xEl2 = new XElement ("Row");
i = 0; (object cell in dr.ItemArray)
{xEl3 = new XElement ("Field");. SetAttributeValue ("name", dr.Table.Columns [i]. ColumnName);. SetAttributeValue ("value", cell) ; + +;. Add (xEl3);
}. Add (xEl2);
}. Root.Add (xEl1);
}
}
Приклад XML-файла, отриманого в результаті обробки РБД можна побачити в Додатку 3.
Висновок
Кінцевим результатом роботи можна назвати розроблений і реалізований стерпний графічний інтерфейс користувача для роботи з вбудовуваної реляційної БД на прикладі СУБД SQLite з можливістю складання схеми БД у вигляді дерева і збереження його в XML-файл.
Даний інтерфейс, хоч і далекий від ідеального, але реалізує поставлені завдання:
1) організована робота з БД через графічний інтерфейс користувача: створення нового, завантаження створеного файлу БД; додавання нових таблиць в БД; читання таблиць, полів таблиць з БД;
2) організовано представлення схеми БД у вигляді ієрархічної структури в самому додатку і її збереження в XML-файл;
Подальший розвиток проекту можна побачити в:
) збільшенні функціональних можливостей по візуальному побудови запитів,
2) у вдосконаленні механізму і формальному описі правил подання РБД у вигляді ієрархічної моделі даних (XML-файла),
) додавання повнофункціональної переносимості програми між різними ОС, відмінними від сімейства ОС Windows (багатоплатформеності).
Додаток 1
Повний код програми
using System;
using
SQLiteSampleProject
{partial class MainWindow: Window
{
///<...