Я пытаюсь вставить данные из объекта в мою таблицу базы данных sqlite.Я продолжаю получать ту же ошибку при попытке сделать это.
При вставке данных в другую таблицу (слова) одного и того же БД, используя ту же технику, я могу успешно вставить данные без ошибок.Это заставляет меня поверить, что мое значение SQLiteConnection 'cnn' не является проблемой.Я убедился, что имена свойств объекта такие же, как и поля в таблице.В этой конкретной таблице нет первичного ключа, но я не уверен, является ли это проблемой или нет.
Код, который не работает:
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», кажется, обеспечивает параметры очень хорошо, что меня очень смущает.
Любая помощь будет принята с благодарностью.Это мой первый вопрос о переполнении стека, поэтому я прошу прощения, если ответ очень очевиден:)