c# Ошибка параметров System.Data.SQLite

Я использую базу данных SQlite на С# и имею ошибку с параметрами.

using System.Data.SQLite;

Вот основная часть кода:

            this.dbUpdateCommand = new SQLiteCommand();

            dbUpdateCommand.Parameters.AddWithValue("@paramNewValue", (string)this.valueNew);
            dbUpdateCommand.Parameters.AddWithValue("@paramPredValue", (string)this.valuePred);
            dbUpdateCommand.Parameters.AddWithValue("@paramTableName", (string) this.tableName);
            dbUpdateCommand.Parameters.AddWithValue("@paramColumnName", (string)this.columnInDB);
            dbUpdateCommand.Parameters.AddWithValue("@paramKeyField", (string)this.keyFieldInDB);
            dbUpdateCommand.Parameters.AddWithValue("@paramKeyValue", (string)this.keyValueInDB);

            dbUpdateCommand.CommandText = "UPDATE @paramTableName SET @paramColumnName=@paramNewValue WHERE @paramKeyField=@paramKeyValue;";

            dbUpdateCommand.ExecuteNonQuery();

И это выдает мне исключение «Ошибка SQLite рядом с «@paramTableName»: синтаксическая ошибка»

Я попытался сделать чистый оператор SQL без параметров, но с конкатенацией строк, и он работает с теми же переменными (this.tableName является допустимым именем таблицы db). Так что, похоже, что-то не так с моими параметрами. Кто-нибудь знает, что?


person gleb.kudr    schedule 11.06.2012    source источник


Ответы (1)


Вы не можете использовать параметры для ссылки на объекты (таблицы и столбцы). Вам нужно будет добавить фактические имена таблиц и столбцов в ваш запрос. При этом будьте осторожны с SQL-инъекциями.

person bluevector    schedule 11.06.2012