gpt4 book ai didi

c# - UWP SQLite - 无法找到/创建 .db 文件

转载 作者:太空宇宙 更新时间:2023-11-03 20:58:27 24 4
gpt4 key购买 nike

我是 SQLite 的新手,我想在 UWP 应用程序中使用它。问题是,我目前有这个来建立连接:

public static void InitializeDatabase()
{
using (SqliteConnection db =
new SqliteConnection("Filename=DatabaseFile.db"))
{
db.Open();

String tableCommand = "CREATE TABLE IF NOT " +
"EXISTS MyTable (Primary_Key INTEGER PRIMARY KEY AUTOINCREMENT, " +
"Text_Entry NVARCHAR(2048) NULL)";

SqliteCommand createTable = new SqliteCommand(tableCommand, db);

createTable.ExecuteReader();
}
}

但我想要一个数据库系统来保存所有数据(比如 mysql)。 SQLite 可以吗?如何?另外,如果我使用该代码,我将无法创建文件?这怎么可能?

我创建了一个 .db 文件,里面有表格(使用 this 软件)

项目结构:

Project structure

并且已经在其中添加了一些数据,我可以使用该文件,但是我不知道如何/在哪里使用,我不知道吗?

最佳答案

您提供的代码片段将在应用程序的本地存储文件夹中创建数据库文件,该文件夹通常位于 Windows 路径 C:\Users\[USER_NAME]\AppData\Local\Packages\[PACKAGE_ID]\LocalState(您应用的 PACKAGE_ID 在 appxmanifest 文件的Packaging 选项卡上列为Package Name)。由于这基本上是您的应用程序具有完全读/写访问权限的极少数文件夹之一,因此没有太多用于将数据库文件放置在其他位置的选项。

如果您有一个已经包含一些表的预定义数据库,并且您希望将其打包为应用程序的一部分,您只需将其添加到项目树中,如屏幕截图中正确显示的那样,但不要忘记打开它的 Properties 并将 Build Action 设置为 Content,否则它不会成为最终应用程序包的一部分:

Set a file's Build Action to "Content"

然后,您需要将此文件复制到应用程序的存储文件夹之前创建 SQLite 连接,例如使用类似的东西:

var file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///DatabaseFile.db"));
await file.CopyAsync(ApplicationData.Current.LocalFolder);

ms-appx:/// 前缀告诉文件系统该文件存在于应用程序包的根文件夹中。

在现实生活中的应用程序中,您需要添加检查文件是否已经存在(可能只在第一次应用程序启动时复制它!)、异常处理等。

关于c# - UWP SQLite - 无法找到/创建 .db 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48044504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com