gpt4 book ai didi

c# - SQLite:创建表并在表不存在时添加一行

转载 作者:行者123 更新时间:2023-11-30 16:13:21 24 4
gpt4 key购买 nike

我在 SQLite 中遇到查询问题。我无法实现我的目标,因为我遇到语法错误。我正在尝试检查表帐户是否存在,如果不存在则创建它并添加一行。我试了好几种代码,最后一个是这样的:

IF NOT EXISTS (SELECT * FROM account) THEN
BEGIN
CREATE TABLE account (rowID INT, user VARCHAR(20), pass VARCHAR(20))
INSERT INTO account (rowID, user, pass) VALUES (0, '', '')
END

我在 C# 中使用 SQLite 3

我可以使用以下代码让它工作:

CREATE TABLE IF NOT EXISTS account (rowID INT, user VARCHAR(20), pass VARCHAR(20))

但我不知道如何在这里添加插入新行的部分。如果此时创建了表,则必须仅插入该行,因此我无法在 2 个查询中完成这项工作。

最佳答案

试试下面的代码:

 using (SQLiteConnection con = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;"))
using (SQLiteCommand command = con.CreateCommand())
{
con.Open();
command.CommandText = "SELECT name FROM sqlite_master WHERE name='account'";
var name = command.ExecuteScalar();

// check account table exist or not
// if exist do nothing
if (name != null && name.ToString() == "account")
return;
// acount table not exist, create table and insert
command.CommandText = "CREATE TABLE account (rowID INT, user VARCHAR(20), pass VARCHAR(20))";
command.ExecuteNonQuery();
command.CommandText = "INSERT INTO account (rowID, user, pass) VALUES (0, '', '')";
command.ExecuteNonQuery();
}

关于c# - SQLite:创建表并在表不存在时添加一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21810075/

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