| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > WPF и Silverlight > Использование БД в WPF приложении |
| Автор: Anyone 17.11.2009, 16:09 |
| В моем WPF приложении необходимо использовать базу данных. Поскольку в ней будет хранится не много данных, то использовать для этих целей отдельную БД не имеет смысла. Подскажите как в таком случае лучше хранить данные? Я планирую работать с данными через датасет, который потом сериализовать в XML, но может это не оптимальный вариант. Второй вопрос. Как лучше в WPF отобразить данные БД? Насколько я понял, проще всего в ItemsControl'е (или производных от него), написать шаблоны данных и селектор шаблонов (стилей)? |
| Автор: Partizan 17.11.2009, 18:52 |
| DataGrid - не вариант? |
| Автор: DenWPF 17.11.2009, 20:34 |
| я так и не понял откуда ты БД берешь, если ХМЛ то проще template. |
| Автор: Partizan 18.11.2009, 20:54 | ||
Anyone, в 10-й студии он уже есть искаропки...
Конечно лучше XML...тем более можно набросать XSD схему и сгенерить классы для маппинга |
| Автор: Anyone 18.11.2009, 21:18 | ||
Пока ставить 10ку не буду, попробую заюзать либу.
Второе предложение мне не понятно, буду разбираться, спасибо за совет. |
| Автор: Anyone 18.11.2009, 22:20 | ||
А чем ее бросать, или руцями придется, а то ничего внятного не нахожу по этому поводу? |
| Автор: Partizan 19.11.2009, 01:51 |
| http://msdn.microsoft.com/en-us/library/ms171945(VS.80).aspx |
| Автор: Anyone 19.11.2009, 10:20 | ||
MSDN гласит:
Но мой тулбокс пустой, что я делаю не так? А вообще, я так понял, проще всего будет сгенерировать схему используя xml файл. А по поводу этого можно подробней, мне ничего не понятно из того что я нашел, что мне вообще дает эта схема, если xml-файл я формирую программно (имею в виду, что я уверен в том что структура правильная)? |
| Автор: Partizan 19.11.2009, 14:28 |
| по XML схеме утилиткой xsd.exe можно сгенерить cs файлы с классами, соответствующими схеме, которые обычно можно сериализовать/десериалозовать XmlSerializer-ом. |
| Автор: Anyone 19.11.2009, 15:54 |
| Я правильно понял, что этот класс служит именно для того чтоб можно было выполнять сериализацию\десериализацию xml-документа? Но, к примеру, выборку гораздо проще выполнить с помощью LINQ to XML, чем с помощью методов класса, не совсем понимаю что мне он дает. |
| Автор: Partizan 19.11.2009, 16:25 | ||
Ну собственно говоря, тут выбирать Вам - что удобнее под задачу, то и нужно использовать...
При указанных количествах данных XML вполне себе подойдёт...а как с ним работать - выбирайте наиболее удобный вариант...я лишь предложил один из них. |
| Автор: Anyone 19.11.2009, 17:09 | ||
Ясно, спасибо, этот вариант с классом мне не очень нравится, но буду иметь в виду что такое существует. |
| Автор: Anyone 20.11.2009, 22:02 | ||||
| Я сделал так: 1. Создал класс Variable со свойствами - колонками таблицы 2. Создал класс VariablesCollection: System.Collections.ObjectModel.ObservableCollection<Variable>, который служит источником для таблицы (DataGrid) 3. Сериализация коллекции:
4. Десериализация коллекции:
Все отлично работает при использовании небольшого ко-ва элементов коллекции (не более 1000), но мне очень не нравятся мои функции сериализации\десериализации, можно их переписать так, чтобы увеличилось быстродействие? |