использование локальной базы данных для сохранения переменной в Windows Phone 7

Как использовать локальную базу данных в Windows Phone 7, чтобы сохранить только значение, а затем получать это значение каждый раз, когда приложение загружается (открывается)?


person Nghia Nguyen    schedule 05.08.2011    source источник


Ответы (1)


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

Пример его использования:

using System.IO.IsolatedStorage;

//storing value
int someValue = 10;
IsolatedStorageSettings.ApplicationSettings.Add("MyKey",someValue);

//write or update value
IsolatedStorageSettings.ApplicationSettings["MyKey"] = someValue;

//write to disk
IsolatedStorageSettings.ApplicationSettings.Save();


//reading value
if(IsolatedStorageSettings.ApplicationSettings.Contains("MyKey"))
{
   int readValue = (int) IsolatedStorageSettings.ApplicationSettings["MyKey"];
}   

Теперь Mango предлагает поддержку MSSqlCE, но для набора значений это излишне. База данных больше подходит, если вам нужно хранить реляционные данные, а не постоянные настройки пользователя/приложения.

Хотя IsolatedStorage удобен, его чтение и запись могут быть дорогими. Избегайте чтения из IsolatedStorage из вашего потока пользовательского интерфейса, что приведет к тому, что ваше приложение не будет отвечать на запросы.

person Alan    schedule 05.08.2011
comment
Я продолжаю получать эту ошибку: значение не попадает в ожидаемый диапазон, я проверил, и у меня нет повторяющегося значения. Независимо от того, какое значение ключа я использую... - person Nghia Nguyen; 05.08.2011
comment
@ng_ducnghia звучит как новый вопрос. И почти наверняка потребуется, чтобы вы показали свой код, чтобы он ответил. - person Matt Lacey; 05.08.2011
comment
Я решил это, просто нужно добавить функцию Clear() перед Add(), и она отлично работает: appSettings.Clear(); - person Nghia Nguyen; 05.08.2011
comment
Я не рекомендую использовать Clear(), так как он очистит весь словарь настроек. Вместо этого вы можете использовать appSettings['mykey'] = value; Я обновил свой ответ, чтобы отразить это. - person Alan; 05.08.2011