根据你提供的代码,可能导致错误的原因是在第二个查询执行之前,没有调用next()函数来移动到下一条记录。在第一个查询结果集的循环中,你需要在执行完第一个查询后调用next()函数来移动到下一条记录。
修正后的代码如下:
QJsonArray grouparray;
query.prepare("select * from groupmember where account=:account");
query.bindValue(":account", m_account);
query.exec();
while (query.next()) {
QSqlQuery query2;
query2.prepare("select * from groupchat where group_account=:group_account");
query2.bindValue(":group_account", query.value("group_account").toString());
query2.exec();
while (query2.next()) { // 移动到下一条记录
QJsonObject groupobj;
groupobj.insert("group_account", query.value("group_account").toString());
qDebug() << query2.value("group_name").toString();
groupobj.insert("group_name", query2.value("group_name").toString());
grouparray.append(groupobj);
}
}
这样,在第二个查询结果集的循环中,会正确地遍历每条记录,并执行插入操作。
如果问题仍然存在,请确保数据库连接正常、表名和字段名拼写正确,并检查相关数据是否符合预期。如有必要,可以输出更多调试信息以便进一步排查问题。
内容由零声教学AI助手提供,问题来源于学员提问