«Невозможно открыть файл базы данных» с помощью SQLite на Windows Phone 7 - PullRequest
0 голосов
/ 25 апреля 2011

Я использую SQLite для Windows Phone 7 (http://sqlitewindowsphone.codeplex.com/), и я выполнил все шаги из этого урока (http://dotnetslackers.com/articles/silverlight/Windows-Phone-7-Native-Database-Programming-via-Sqlite-Client-for-Windows-Phone.aspx)

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

Понятия не имею, почему?

Ответы [ 2 ]

1 голос
/ 22 августа 2013

Я использовал тот же клиент Sqlite, и у меня была та же проблема.Эта проблема возникает из-за того, что sqlite пытается создать файл в IsolatedFileStorage "DatabaseName.sqlite-journal", и у него недостаточно разрешений для этого.Я решил проблему, так что создал «DatabaseName.sqlite-journal» перед копированием базы данных в IsolatedFileStorage.Вот мой метод, который сделал это:

private void CopyFromContentToStorage(String assemblyName, String dbName)
{
IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();

        string uri = dbName + "-journal";

        store.CreateFile(uri);

        using (Stream input = Application.GetResourceStream(new Uri("/" + assemblyName + ";component/" + dbName,UriKind.Relative)).Stream)
        {
            IsolatedStorageFileStream dest = new IsolatedStorageFileStream(dbName, FileMode.OpenOrCreate, FileAccess.Write, store);
            input.Position = 0;
            CopyStream(input, dest);
            dest.Flush();
            dest.Close();
            dest.Dispose();
        }
    }

это помогло мне, и сработало хорошо.

надеюсь, это поможет вам

0 голосов
/ 25 апреля 2011

Вы уверены, что файл существует?Вы можете проверить так:

        using (var store = IsolatedStorageFile.GetUserStoreForApplication())
        {
            exists = store.FileExists(DbfileName);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...