Sqlite Transaction, синтаксическая ошибка. Вставить и удалить в той же транзакции - PullRequest
1 голос
/ 11 октября 2010

У меня есть список элементов, которые я хочу вставить в базу данных, но я не хочу дубликатов. Поэтому я удаляю все элементы и заново вставляю все. Это не самый эффективный способ, но это не так много вещей, поэтому он работает для меня. Но я получаю синтаксическую ошибку рядом с «Вставить». Я делаю следующее:

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 Ответ

2 голосов
/ 11 октября 2010

Вам нужно разделить ваши команды точкой с запятой, не так ли?

Также я не уверен, что команда способна выполнять несколько операторов.

...