无法在用 C++ 编写的 UWP 上使用 SQLite 打开数据库

Can't open database using SQLite on an UWP written in C++

本文关键字:SQLite UWP 数据库 C++      更新时间:2023-10-16

我正在制作一个UWP,我需要在其中访问数据库。为此,我首先从以下链接下载并安装了SQL通用Windows平台:

https://sqlite.org/download.html

完成此操作后,我将其添加为参考,并将其包含在我的代码中:

#include <sqlite3.h> //Not sure if I need to make any other changes for this to work

要进行故障排除,我只有一个按钮和一个文本框。这是单击按钮时运行的代码:

int rc;
sqlite3 *testDB;
if (SQLITE_OK == (rc = sqlite3_open("signers.db", &testDB))) { 
Message->Text = "It worked!";
}
else {
Message->Text = "Can't open Database";
}

签名者.db这是我使用 SQLite 创建的数据库,因此我可以从我的程序中读取一些数据。每次我运行该程序时,都会出现文本"无法打开数据库"。我已经尝试了我在网上看到的所有解决方案,但似乎没有一个对我有用,因此我认为我监督了一些东西。我对 UWP 和使用数据库相当陌生。

如果您需要任何其他信息,请随时询问。

如果包文件夹中有数据库,则它是只读的。您需要使用sqlite3_open_v2并传递SQLITE_OPEN_READONLY标志。

如果要打开数据库进行读/写,则需要先将其复制到本地文件夹。

(还要确保确实设置了要部署的数据库;在"属性"窗口中,确保将其设置为Content并且将复制到输出目录(。

根据

https://learn.microsoft.com/en-us/windows/uwp/files/file-access-permissions

您对要打开的数据库文件所在的位置有一些限制。 SQLite 本身应该可以工作。尝试在文章中指定的文件夹中打开数据库。

也可能只是一个损坏的数据库文件。您是否尝试创建一个空的?