【问题标题】:SQLite Could not open database file in Xamarin.UWP appSQLite 无法在 Xamarin.UWP 应用中打开数据库文件
【发布时间】:2019-12-21 02:13:59
【问题描述】:

很遗憾,以下问题的答案并没有解决我的问题: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);
}

【问题讨论】:

    标签: c# sqlite sqlite-net


    【解决方案1】:

    我将这个静态常量类添加到我的项目中,这里推荐: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”?

    【讨论】:

      猜你喜欢
      • 2014-11-11
      • 2014-08-30
      • 1970-01-01
      • 2018-05-15
      • 1970-01-01
      • 2021-10-15
      • 2015-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多