Почему для этого оператора INSERT я получаю сообщение «Недостаточно параметров»?C#

Место общения программистов C#
Ответить
Anonymous
 Почему для этого оператора INSERT я получаю сообщение «Недостаточно параметров»?

Сообщение Anonymous »

Я пытаюсь вставить данные из объекта в таблицу SQLite. В другую таблицу (слова) той же базы данных, используя ту же технику, которую я могу успешно вставить. Названия свойств объекта такие же, как и полей внутри таблицы. В этой таблице нет первичного ключа.
Код, который не работает:

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

using (IDbConnection cnn = new SQLiteConnection(connection))
{
foreach (bridgeRecord br in bridgeWords)
{
try
{
cnn.Execute("insert into bridge (engWord, spaWord, frequency, wordClass) values (@engWord, @spaWord, @frequency, @wordClass)", br);
}
catch (SQLiteException ex)
{
Console.WriteLine(ex);
}
}
}
Код, который работает:

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

using (IDbConnection cnn = new SQLiteConnection(connection))
{
foreach (Word w in words)
{
try
{
cnn.Execute("insert into words (word, wordSimplified, confidence, difficulty, wordClass, wordCategory, dateTestedLast, popularity, language) " +
"values (@word, @wordSimplified, @confidence, @difficulty, @wordClass, @wordCategory, @dateTestedLast, @popularity, @language)", w);
}
catch (SQLiteException ex)
{
wordsBouncedBack.Add(w.word);
continue;
}
}
}

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

bridgeRecord
класс:

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

class bridgeRecord
{
public string engWord;
public string spaWord;
public int frequency;
public string wordClass;
}
Ошибка:

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

code = Unknown (-1), message = System.Data.SQLite.SQLiteException (0x80004005): unknown error
Insufficient parameters supplied to the command
at System.Data.SQLite.SQLiteStatement.BindParameter(Int32 index, SQLiteParameter param)
Я ожидал, что объект BridgeRecord предоставит параметры для вставки, но это не так, хотя объект Word прекрасно предоставляет параметры.


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

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

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

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

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

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