WinForms-какой самый простой подход для сохранения некоторых данных?

просто создаю свое первое приложение WinForms.

вопрос-Какой самый простой / лучший подход для сохранения некоторых данных между использованием приложения (например, список URL со статусом и датой/временем в этом случае)? Не вижу необходимости в базе данных.

например * Просто хранение в текстовый файл проще всего? * Или хранение в XML-файл так же легко в DotNet * Как насчет реестра Windows-это что-то вообще, чтобы избежать? Это использование совместимо по всем версий, включая Windows 7 * База данных-вероятно, перебор здесь * Возможно, широко используемая библиотека?

спасибо

6 ответов


хранение в XML очень легко в .NET, особенно если вы действительно просто храните URL-адрес и метку времени. Можно создать пользовательский класс для хранения данных... во время выполнения манипулируйте экземплярами этого класса в приложении.

когда пришло время сохранить, сериализуйте объект(ы) в XML... когда приложение должно восстановить данные позже, просто десериализуйте. MSDN имеет простой прохождение.

стоит отметить, как это сделал Квинтин, что использование SQL Server Compact или некоторые другие облегченные базы данных также могут быть хорошей идеей. XML быстрый и простой - но если вам нужны люди для обмена данными или вам нужно что-то более гибкое, чем простая сериализация, вам лучше с базой данных.


посмотри настройки вашего проекта (щелкните правой кнопкой мыши проект в обозревателе решений > свойства > вкладка настройки), вы можете определить ряд переменных, которые сохраняются на протяжении всего использования программы для каждого пользователя, как имя пользователя, время последнего обновления, прокси-сервер, что-нибудь подобное. Сами параметры сериализуются в XML и живут в папке "Параметры Приложения" для каждого пользователя, но можно указать параметры по умолчанию или приложения как что ж.

затем вы можете использовать следующие настройки:

MyNamespace.Properties.Settings.Default.MySetting

более подробную информацию о файлах настроек можно найти @ - узел MSDN или проект Код

это здорово, если вам нужно сохранить только несколько переменных между сеансами. Если вам нужно сохранить больший объем данных, просмотрите один из вариантов базы данных, предложенных в других ответах, или сериализация.


Если вам действительно нужна большая настойчивость и из хранилища приложений, вы можете использовать sqlite или sql server compact (оба автономные), однако в вашем случае я думаю, что чтение/запись в xml-файл в общей папке данных приложения будет соответствовать вашим потребностям и будет невероятно легко.


отредактировано, потому что мой первый пост был ясен, как грязь

лично я, как хранить данные в базе данных, если пользователи обмениваются данными.

для не общих, однопользовательских данных следующие параметры довольно просты.

Если ваши данные хранятся в наборе данных внутри, я бы предложил использовать DataSet.WriteXml и DataSet.ReadXml для локального хранения.

в противном случае простой текстовый файл будет проще всего для чего-то все так просто, как вы предлагали. Однако если данные будут более сложными, то наиболее подходящим будет написание Xml-документа.

вы также можете посмотреть сериализацию:

http://msdn.microsoft.com/en-us/library/7ay27kt9 (VS.85).aspx


вы должны проверить в db4o. Эта легкая база данных объектов с открытым исходным кодом для объектов .NET и Java очень полезна, когда вам просто нужно простое сохранение. Его больше запросов, чем текстовый файл, и не такой тяжелый, как СУБД. Он включен в качестве библиотеки и сохраняется в файл, поэтому нет вызовов вне процесса.

его можно добавить в ваш проект, обратившись к библиотеке db4o (скачать здесь). Вы даете ему путь к файлу который вы хотите сохраняются объекты, и он обрабатывает все остальное. Затем вы можете создавать классы для инкапсуляции вашей информации и просто сохранять их экземпляры в файл через db4o. Вы можете попросить их позже через очень простой интерфейс запроса.


зависит от того, сколько данных вы хотите сохранить, но если это просто небольшой набор значений (а не набор объектов или записей), то также посмотрите в изолированное хранилище:

https://msdn.microsoft.com/en-us/library/3ak841sy (v=против 110).aspx