遗憾的是,以下问题的答案不能解决我的问题:SQLite - Could not open database file
我知道该文件夹存在,但是仍然遇到以下异常:
SQLite.SQLiteException:'无法打开数据库文件: C:\ Users \ david \ data.db(CannotOpen)'
using (var conn = new SQLiteConnection(@"C:\Users\david\data.db"))
{
conn.CreateTable<DBItem>();
var item = new DBItem();
item.TextData = addEntry.Text;
conn.Insert(item);
}
答案 0 :(得分:0)
我按照这里的建议将这个静态常量类添加到了我的项目中:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/data-cloud/data/databases
public static class Constants
{
public const string DatabaseFilename = "TodoSQLite.db3";
public const SQLite.SQLiteOpenFlags Flags =
// open the database in read/write mode
SQLite.SQLiteOpenFlags.ReadWrite |
// create the database if it doesn't exist
SQLite.SQLiteOpenFlags.Create |
// enable multi-threaded database access
SQLite.SQLiteOpenFlags.SharedCache;
public static string DatabasePath
{
get
{
var basePath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
return Path.Combine(basePath, DatabaseFilename);
}
}
}
并将我的呼叫代码更新为以下内容:
using (var conn = new SQLiteConnection(Constants.DatabasePath))
{
conn.CreateTable<DBItem>();
var item = new DBItem();
item.TextData = addEntry.Text;
conn.Insert(item);
}
它现在可以工作了。我一直在关注一个略过时的教程,但没有提到此要求。
我仍然很好奇为什么我不能只使用“ C:\ Users \ david \ data.db”?