我遇到了SQLite / Dapper的问题,我收到Insufficient parameters supplied to the command
错误。我意识到这个问题被问了很多,但我在互联网上发现的所有答案都指向缺少parameters
或spelling mistakes
,但我在这里看不到任何答案。
我有一个现有的数据库表我试图将信息添加到:
CREATE TABLE 'Question' (
'Id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL ,
'Text' TEXT NOT NULL ,
'CategoryId' INTEGER NOT NULL ,
'IsMultipleChoice' BOOL NOT NULL DEFAULT TRUE,
FOREIGN KEY (CategoryId) REFERENCES Category(Id));
我有一个类,表示要添加到database
的对象:
class Question
{
public int Id { get; set; }
public string Text { get; set; }
public int CategoryId;
public bool IsMultipleChoice { get; set; }
}
使用Dapper
public Question Add(Question question)
{
using (var conn = BaseDatabase.dbConnection())
{
var sqlQuery = @"INSERT INTO Question (Text, CategoryId, IsMultipleChoice)
VALUES(@Text, @CategoryId, @IsMultipleChoice);
SELECT CAST(last_insert_rowid() as int)";
var questionId = conn.Query<int>(sqlQuery, question).Single();
question.Id = questionId;
return question;
}
}
我有一个表的方法,其Id
和Name
字段完全相同,但只传递一个Name参数,并且工作正常。