Локальное хранилище данных для Winforms - PullRequest
0 голосов
/ 06 мая 2010

Я надеюсь, что мой заголовок не вводит в заблуждение, но я ищу хранилище данных файлового типа для приложения Winforms (.NET 3.5), которое позволит мне:

  1. сохранение / извлечение строк и десятичных чисел (только);
  2. открыть и сохранить его в файл с пользовательским расширением (например: * .abc); и
  3. имеют некоторое реляционное отображение данных.

По сути, приложение должно позволить мне создать новый файл с моим пользовательским расширением (я au fait с обработкой ассоциаций файлов), а затем сохранить в этот файл данные, основанные на функциональности, определяемой само приложение Аналогично тому, когда вы создаете документ Word, за исключением того, что этот файл также должен хранить реляционные данные.

Элементарный пример:

  • «файл» представляет автомобиль человека
  • каждый автомобиль будет иметь стандартные данные, которые будут применяться к нему - Марка, Модель, Год, Цвет и т. Д.
  • Тем не менее, каждый автомобиль может иметь определенные категории, связанные с ним, такие как: История механики, История развлечений в автомобиле, История модификаций и т. Д.
  • На основании данных, хранящихся в этом «файле», человек может затем составить подробный отчет об автомобиле.

Я понимаю, что приведенный выше пример может легко оправдать использование встроенной БД, такой как SQLCE (SQL Server Compact Edition), но на этот раз я хочу иметь возможность создавать хранилища данных, которые могут перемещаться вместе с людьми, предполагая, что это приложение находится на более чем один компьютер (например, работа и дом).

Я не уверен, что здесь можно использовать XML, поскольку реляционное отображение данных может представлять проблему. Теоретически я предполагаю наличие заранее определенной модели данных и создаю новую базу данных типа SQLCE («файл»), в которую можно сохранять и извлекать данные. Размер файла не является проблемой, если он переносим, ​​т.е. Я могу скопировать его на флэш-диск из офиса и продолжить работу с ним дома.

Если мой вопрос все еще неясен, пожалуйста, дайте мне знать, и я сделаю все возможное, чтобы уточнить! Я был бы очень признателен за любую помощь в этом отношении.

СПАСИБО МИЛЛИОНОВ !!

РЕДАКТИРОВАТЬ: мои извинения за длинное эссе!

1 Ответ

1 голос
/ 13 июня 2010

Вот несколько способов сделать это.

  1. XML, DataSets и Linq

    Вы можете использовать XML-файл и загрузить его в DataSet, а затем использовать Linq для запроса.

  2. SQLite

    SQLite - это файловая база данных. Вы можете отправить dll SQLite вместе с вашим приложением, не требует установки. Вы можете назвать файлы как угодно, а затем получить доступ к данным с помощью ADO.NET. Вот поставщик ADO.NET и реализация sqlite, объединенные в одну DLL: http://sqlite.phxsoftware.com/

...