В моем запросе предполагается добавить дополнительный столбец «_DisableAccounting» в таблицу «Settings_Global», указав значение DEFAULT с помощью SQLiteParemeter.
ALTER TABLE Settings_Global ADD COLUMN `_DisableAccounting` BOOL NOT NULL DEFAULT @defaultValue;
Когда SQLiteCommand выполняется, @defaultValue следует заменитьпо предоставленному параметру.
// ....
SQLiteParameter defaultValueParam = null;
if (defaultValue != null) {
query += " DEFAULT @defaultValue`";
defaultValueParam = new SQLiteParameter { ParameterName = "@defaultValue", Value = defaultValue };
}
query += ";";
using (SQLiteCommand cmd = _Connection.CreateCommand()) {
cmd.CommandText = query;
if (defaultValueParam != null) {
cmd.Parameters.Add(defaultValueParam);
}
cmd.ExecuteNonQuery();
}
// ....
Тем не менее, я получаю сообщение об ошибке «Ошибка логики SQL или отсутствует база данных рядом с @defaultValue»: синтаксическая ошибка ». Поэтому кажется, что команда никогда не заменяет @defaultValue нафактическое значение.
Почему это не работает? Я делаю по сути то же самое с MySQL (мое приложение может дополнительно использовать MySQL), и он работает.