Код: Выделить всё
using (var cmd = conn.CreateCommand())
{
try
{
cmd.CommandText = @"INSERT INTO mtConcepts (
conceptid,
[text],
incomplete)
VALUES (
@conceptid,
@text,
false)";
cmd.Parameters.Add("@conceptid", OleDbType.BigInt).Value = concept.Id.Value;
cmd.Parameters.Add("@text", OleDbType.LongVarWChar).Value = cG.ToString(SaveOptions.DisableFormatting);
await cmd.ExecuteNonQueryAsync(cancellationToken).ConfigureAwait(false);
}
catch (AggregateException exception)
{
...
}
catch (OleDbException exception)
{
...
}
}
Слишком мало параметров. Ожидается 2.
...и я не могу понять, почему.
Это код, который был написан около 7 лет назад и работал до... недавнего времени.
Более того, если я не параметризую запрос, а вместо этого передаю значения непосредственно в SQL, тогда он работает.
Обновление
Я добился этого, установив более старую версию Распространяемого компонента Microsoft Access Database Engine 2010. Но все же я озадачен: перед установкой этой версии 2010 года я использовал соединение, которое поставляется с последней версией Access (устанавливается через Office365), поэтому оно все равно должно было работать.
Подробнее здесь: https://stackoverflow.com/questions/653 ... parameters
Мобильная версия