Соединение OLEDB выдает исключение «Слишком мало параметров»C#

Место общения программистов C#
Ответить
Anonymous
 Соединение OLEDB выдает исключение «Слишком мало параметров»

Сообщение Anonymous »

У меня есть следующий запрос INSERT, выполняемый к базе данных Access...

Код: Выделить всё

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)
{
...
}
}
В сообщении обнаружено исключение OleDbException...

Слишком мало параметров. Ожидается 2.

...и я не могу понять, почему.
Это код, который был написан около 7 лет назад и работал до... недавнего времени.
Более того, если я не параметризую запрос, а вместо этого передаю значения непосредственно в SQL, тогда он работает.
Обновление
Я добился этого, установив более старую версию Распространяемого компонента Microsoft Access Database Engine 2010. Но все же я озадачен: перед установкой этой версии 2010 года я использовал соединение, которое поставляется с последней версией Access (устанавливается через Office365), поэтому оно все равно должно было работать.

Подробнее здесь: https://stackoverflow.com/questions/653 ... parameters
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»