我在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();
}
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!