【问题标题】:Connect to sqlite database on win IOT在 win IOT 上连接 sqlite 数据库
【发布时间】:2019-01-22 19:22:30
【问题描述】:

尝试连接树莓派 3 上的 sqllite 数据库时出现错误 {SQLite.Net.SQLiteException: 无法打开数据库文件:C:\Data\Users\DefaultAccount\Documents\Storage.db (CannotOpen) ,用WIN IOT是操作系统。我正在使用 SQLite 的 SQLite.Net-PCL 版本 3.1.1 实现。

var documentsPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);    var fileName2 = "Storage.db";
var path2 = Path.Combine(documentsPath, fileName2);     

try
        {
            using (var connection = new SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path2))
            {

            }
        }
        catch (Exception ex)
        {
            string m_er = ex.ToString();
        }

【问题讨论】:

    标签: sqlite raspberry-pi iot windows-10-iot-core


    【解决方案1】:

    我想你使用的是 UWP 应用程序。在 Windows IoT Core 上,您可以使用 FolderPermissions tool 使 UWP 应用可以访问此路径“C:\Data\Users\DefaultAccount\Documents”。

    FolderPermissions C:\Data\Users\DefaultAccount\Documents -e
    

    由于您没有收到“拒绝访问”错误,所以我想您已经在 Package.appxmanifest 中添加了以下功能。

    <uap:Capability Name="documentsLibrary" />
    

    那么你的代码就可以工作了。 (我在 Raspberry Pi 3 上使用 Windows IoT Core 版本 10.0.17763.107 进行测试)

    【讨论】:

    • 设置文件夹“C:\Data\Users\DefaultAccount\Documents”的权限解决了这个问题。非常感谢!
    • 我添加了行; md.CreateTable();在 md= new line 之后收到错误; SQLite.Net.SQLiteException:磁盘 I/O 错误。我检查了 storage.db 和 storage.db-journal 都具有读写权限。我看到有人建议为数据库设置标志 QLiteOpenFlags.ReadWrite | SQLiteOpenFlags.创建 | SQLiteOpenFlags.FullMutex,但我不知道该怎么做?
    • 嗨@Dave,似乎“无法打开”的问题已经解决了,对吧?如果是真的你可以参考"Help Center > Answering" 这样我们就可以完成这个问题了。我看到你已经发布了new question of the issue about CreateTable,所以我们将继续在那里。
    • 是的,此问题已关闭。再次感谢。
    猜你喜欢
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多