FileNotFoundException Ошибка при создании базы данных WP8 Sqlite

Я подписан на это руководство по созданию приложения с базой данных SQLite.

Когда я выполнил его, я получил System.IO.FileNotFoundException, указывающий на файл SQLite.cs, строка, в которой возникла ошибка, показана на снимке экрана ниже (в файл SQLite.cs)

строка ошибки

Ниже приведен фрагмент кода для создания базы данных.

string dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db.sqlite");
if (!FileExists(dbPath).Result)
{
   using (var db = new SQLiteConnection(dbPath))
   {
        db.CreateTable<Person>();
   }
}

и метод FileExists

        private async Task<bool> FileExists(string fileName)
        {
            var result = false;
            try
            {
                var store = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync(fileName);
                result =true;
            }
            catch
            {
            }

            return result;

        }

Мне интересно, что пошло не так. Любая помощь?


person Sunday Okpokor    schedule 26.11.2014    source источник
comment
Почему вы используете File.Exists, не передавая путь, используемый для создания файла?   -  person Steve    schedule 26.11.2014
comment
@ Стив, я только что исправил это сейчас, и та же ошибка все еще сохраняется   -  person Sunday Okpokor    schedule 26.11.2014
comment
! оператор перевернет результат, поэтому, если FileExists вернет false, код будет запущен, а это не то, что вы хотите, я думаю.   -  person MisterXero    schedule 26.11.2014
comment
:-) как же я это пропустил   -  person Sunday Okpokor    schedule 26.11.2014


Ответы (1)


Строкой if (!FileExists(dbPath).Result) вы говорите, что если файл не существует, подключитесь к базе данных и создайте таблицу. Итак, ваше условие неверно, потому что строка

Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync(fileName)

хочет, чтобы существующий файл выполнялся правильно. Исправьте тогда ваше условие if с помощью:

if (FileExists(dbPath).Result)

person Alberto Solano    schedule 26.11.2014