当前位置:首页 > 数据库 > SQlite

C#-SQLite:创建表并在表不存在的情况下添加一行

我在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)!