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

时间:2010-10-10 22:07:29

标签: c# sqlite transactions system.data.sqlite

我有一个项目列表,我想插入数据库,但我不想要任何重复。所以我删除所有项目并重新插入所有项目。这不是最有效的方式,但它不是很多项目,所以它对我有用。但我在“插入”附近遇到语法错误。我做了以下事情:

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 个答案:

答案 0 :(得分:2)

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

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