SQLite - 无法打开数据库文件

use*_*648 10 sqlite android exception xamarin android-sqlite

我正在编写一个Xamarin Android应用程序,并在尝试创建SQLite数据库时遇到错误.

这是我的代码:

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);
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

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

我有相同的代码在另一个Xamarin应用程序中工作,并想知道该异常是否与包的名称有关?

提前致谢

mat*_*dev 15

您提供给SQLite的路径文件夹路径是否存在?如果尚未创建该CanFindLocation文件夹,则打开与该路径的连接将失败.

尝试:

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);
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,希望我能多次投票,花了几个小时找到这篇文章! (3认同)
  • 有趣的是,我刚刚通过谷歌重新发现了这一点,并用自己的答案解决了我自己的问题,而最初却没有意识到...... Doh! (2认同)