UWP SQLite 错误:“尝试写入只读数据库” [重复]

Posted

技术标签:

【中文标题】UWP SQLite 错误:“尝试写入只读数据库” [重复]【英文标题】:UWP SQLite error: "attempt to write a read-only database" [duplicate] 【发布时间】:2021-05-01 03:10:29 【问题描述】:

我正在 Visual Studio 2019 中构建 UWP 应用程序。 在这个项目中,我使用 DBBrowser 创建了一个数据库。

我可以毫无问题地从此数据库中读取所有内容,但是当我尝试向其中写入一些数据时,它给了我错误。 (尝试写一个只读数据库)

谁能帮我解决这个问题,我已经为此工作了几个小时,但找不到解决方案... 我尝试更改数据库的安全属性。我已经重新创建了数据库等。

【问题讨论】:

请考虑将图像剪切到相关部分并添加代码作为文本。一般来说,将可以添加为文本的内容添加为文本。 【参考方案1】:

UWP 具有非常严格的文件访问权限。 我建议阅读 File access permissions 文档和以下 SO 线程:

Including SQLite DB file with data in the UWP application How to write to a readonly sqlite file in UWP

TL;DR,您应该将数据库放在 ApplicationData 文件夹中。

【讨论】:

感谢您的回复!我在哪里可以找到 ApplicationData 文件夹?我在解决方案资源管理器中找不到它。 @RikS 这是一个 Windows 文件夹:win+R -> %localappdata% -> 包 -> 应用名称 -> LocalState。您可以通过ApplicationData.Current.LocalFolder 在 C# 中访问它。有关如何将数据库移动到此位置的参考代码,请参阅我的第一个 SO 链接。 嗯,我明白了。但是我需要将项目完成后导出给我的老师。这个解决方案有可能吗?因为数据库需要和项目一起导出 @RikS 如果你完成了数据库,你可以将它复制回项目,但是它将是只读的。 感谢您的帮助。当您第一次启动应用程序时,我现在将数据库从 assets 文件夹复制到 ApplicationData 文件夹。它有效!

以上是关于UWP SQLite 错误:“尝试写入只读数据库” [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Django 登录错误:在 IIS 中“尝试写入只读数据库”

尝试写入只读数据库(代码 1032)

将 SQLite 数据库模式更改为读写

BEGIN IMMEDIATE 可能在 0:8/尝试写入只读数据库后意外无法步进

如何在 UWP 中使用预填充的 sqlite 数据库?

移动 StorageFile 后立即在 UWP 中打开 SQLite 连接