我正在尝试检查主键(由用户手动输入)是否已存在于SQLite数据库中(以便决定是继续插入新记录还是更新存在的)。
我试过了:
query.exce();
query.isEmpty();
guery.isNull();
然而,他们都给我相同的结果:他们都说记录不存在(返回0)并转到插入功能。即使ref_no确实存在,它们也返回0)。
以下是isNull()
功能的代码:
int DatabaseManager::checkRefNoExist(QString ref_no){
QSqlQuery query;
query.prepare("SELECT * FROM basic_info WHERE ref_no = :ref_no");
query.bindValue(":ref_no", ref_no);
query.exec();
if(query.isNull(ref_no.toInt())){
return 0; // whatever the ref_no is, it always comes here !!
} else {
return 1;
}
}
答案 0 :(得分:2)
您使用ref_no.toInt()
作为列索引。这没有意义。
要检查查询是否返回任何结果行,请尝试获取第一个结果(使用query.first()
或query.next()
)。