gpt4 book ai didi

c# - UWP - 检查表是否存在

转载 作者:太空宇宙 更新时间:2023-11-03 15:12:45 25 4
gpt4 key购买 nike

SQLite 网站上缺少与 VS2015 中可用的“SQLite for Universal Windows Platform”扩展相关的 C# 中的 SQLite 文档。有没有人看到任何特定于此扩展的文档?

我试图查看我的数据库中是否存在一个表,但找不到执行此操作的方法。这就是我正在做的事情以及原因:

SQLite.Net.SQLiteConnection conn; 

string path = path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "entries.sqlite");
if (!System.IO.File.Exists(path))
{
conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path);
conn.CreateTable<Entry>();
}
else
{
conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path);
}

我这样做是因为执行时:

conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path);

如果文件不存在,则创建该文件。所以首先我需要测试它是否存在。我的假设是如果文件存在,我的表就存在,因为不存在创建文件后没有立即创建表的场景。在提供的方法范围内,我是否缺少一些更直接的表格测试方法?

谢谢!

附言。我检查了我的问题是否已得到解答,但没有发现任何与此 API 直接相关的内容。

最佳答案

可以使用系统查询sqlite_master table 查看是否存在具有给定名称的表:

var tableQuery = "SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name='Entry';"
bool tableExists = conn.ExecuteScalar<int>( tableQuery ) == 1;

如果表不存在,查询将返回 0,如果存在,则返回 1。

但是,您不必担心调用 conn.CreateTable<Entry>();即使表已经存在。 SQLite.net 足够聪明,仅在表不存在时才创建表。如果该表已经在数据库中,则此调用将被忽略。

关于c# - UWP - 检查表是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40414830/

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