代码之家  ›  专栏  ›  技术社区  ›  Oskar Kjellin

Sqlite事务,语法错误。在同一事务中插入和删除

  •  1
  • Oskar Kjellin  · 技术社区  · 14 年前

    我有一个要插入数据库的项列表,但不希望有任何重复项。所以我删除所有项目并重新插入所有项目。这不是最有效的方法,但项目不多,所以对我有效。但我在“Insert”附近发现语法错误。我执行以下操作:

    DELETE FROM Settings WHERE Type = 'Extensions'
    INSERT INTO Settings (Value, Type) Values ('img', 'Extensions')
    INSERT INTO Settings (Value, Type) Values ('avi', 'Extensions')
    INSERT INTO Settings (Value, Type) Values ('mpg', 'Extensions')
    INSERT INTO Settings (Value, Type) Values ('mkv', 'Extensions')
    INSERT INTO Settings (Value, Type) Values ('mov', 'Extensions')
    INSERT INTO Settings (Value, Type) Values ('iso', 'Extensions')
    

    并以此执行:

    protected bool ExecuteCommand(string command, bool rollbackOnError)
    {
        using (SQLiteTransaction transaction = DbConnection.BeginTransaction())
        {
            try
            {
    
                using (SQLiteCommand mycommand = new SQLiteCommand(DbConnection))
                {
                    mycommand.CommandText = command;
                    mycommand.ExecuteNonQuery();
                    transaction.Commit();
                }
            }
            catch
            {
                if (rollbackOnError)
                {
                    transaction.Rollback();
                }
                return false;
            }
        }
        return true;
    }
    
    1 回复  |  直到 14 年前
        1
  •  2
  •   Aliostad    14 年前

    你需要用分号分隔你的命令,不是吗?

    另外,我不确定该命令是否能够运行多个语句。