我的sqlite数据库中有数据。 Insert语句执行成功。但是当想从db获取数据时,我发现什么都没有,这个错误“QSqlError(”“,”“,”“)”。我已检查我的查询是否有效且无效。如何解决这个问题?
这是我的代码:
void FindDialog::find()
{
QString roll_number = ui->txt_RN->text ();
int roll = roll_number.toInt ();
const QString findstmnt = "SELECT Roll_Number, Name FROM student_info WHERE Roll_Number = :roll";
scon->getQuery ()->prepare (findstmnt);
scon->getQuery ()->bindValue ("roll", roll);
if(scon->getQuery ()->exec ()){
qDebug() << "Active: " << scon->getQuery ()->isActive ();
qDebug() << "Valid: " << scon->getQuery ()->isValid ();
if(scon->getQuery ()->isActive ()){
if(scon->getQuery ()->next ()){
qDebug() << "Has Data: " << scon->getQuery ()->next ();
} else {
qDebug() << scon->getQuery ()->lastError ();
}
}
} else {
qDebug() << scon->getQuery ()->lastError ();
}
答案 0 :(得分:0)
参数的名称不是roll
,而是:roll
。
将值绑定到错误的参数名称时,实际参数的初始值为NULL
。
因此查询永远不会找到任何行,因为没有值比较等于NULL
。