2014-09-17 20 views
6

koduję aplikację Xamarin dla systemu Android i otrzymuję komunikat o błędzie podczas próby utworzenia bazy danych SQLite.SQLite - nie można otworzyć pliku bazy danych

Oto mój kod:

string applicationFolderPath = System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "CanFindLocation"); 
string databaseFileName = System.IO.Path.Combine(applicationFolderPath, "CanFindLocation.db"); 
SQLite.SQLite3.Config(SQLite.SQLite3.ConfigOption.Serialized); 
var db = new SQLiteConnection (databaseFileName); 

Tutaj jest błąd, że jestem coraz:

SQLite.SQLiteException: Could not open database file: /data/data/com.xamarin.docs.android.mapsandlocationdemo2/files/CanFindLocation/CanFindLocation.db (CannotOpen) 

mam ten sam kod działa w innej aplikacji Xamarin i chcieliby wiedzieć, czy wyjątkiem ma coś wspólnego z nazwą paczki?

góry dzięki

+0

kliknij bazy danych widoczny w prawym górnym rogu menu SQL lite Przeglądarka zaznaczyć –

+0

nie pokazują bazy danych dodać zaćmienie/dropins Folder dodać com.questoid.sqlitebrowser_1.2.0 ten plik .jar ponownie uruchomić projekt. –

Odpowiedz

10

Czy ścieżka ścieżkę foldera, które dostarczają do SQLite istnieje? Jeśli nie utworzono folderu CanFindLocation, otwarcie połączenia z tą ścieżką zakończy się niepowodzeniem.

Spróbuj:

string applicationFolderPath = System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "CanFindLocation"); 

// Create the folder path. 
System.IO.Directory.CreateDirectory(applicationFolderPath); 

string databaseFileName = System.IO.Path.Combine(applicationFolderPath, "CanFindLocation.db"); 
SQLite.SQLite3.Config(SQLite.SQLite3.ConfigOption.Serialized); 
var db = new SQLiteConnection (databaseFileName); 
+1

Dzięki, żałuję, że nie mogłem zrobić kilkukrotnego awansu, zajęło mi to wiele godzin! – user230910

Powiązane problemy