在qt中,我想讲上面的查询结果存入的话应该怎么书写代码
时间: 2024-02-29 10:51:03 浏览: 51
在Qt中,您可以使用QSqlQuery和QSqlDatabase类来执行SQL查询并将结果存储在一个数组中。下面是一个示例代码,演示了如何执行上面的SQL查询并将结果存储在一个QStringList中:
```c++
// 创建和打开数据库连接
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("my_db");
db.setUserName("my_user");
db.setPassword("my_password");
if (!db.open()) {
qWarning() << "Failed to connect to database.";
return;
}
// 执行SQL查询
QStringList classRooms;
QStringList classIds = {"classID1", "classID2", ..., "classID10"};
QSqlQuery query;
query.prepare("SELECT room_info.roomName "
"FROM room_info "
"JOIN class_room_info ON room_info.roomID = class_room_info.roomID "
"WHERE class_room_info.classID = ?");
for (const QString& classId : classIds) {
query.bindValue(0, classId);
if (query.exec() && query.next()) {
QString roomName = query.value(0).toString();
classRooms.append(roomName);
}
}
// 关闭数据库连接
db.close();
```
在这个代码中,首先创建和打开了一个名为"my_db"的MySQL数据库连接。然后,使用QSqlQuery类执行了上面的SQL查询,并将classID[10]中的每个属性值绑定到查询中的占位符。对于每个查询的结果,从查询结果中提取roomName属性,并将其添加到classRooms数组中。最后,关闭了数据库连接。
请注意,这个代码只是一个示例,您需要根据您的实际情况进行适当的修改。
阅读全文