在QT5的应用程序中,我有以下代码
QString sql = "Select * from table";
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("./au.sqlite");
db.open();
QSqlQuery query(sql);
query.exec();
但是当我得到的结果只得到一个结果时,select查询只给我一个结果,我不知道如何解决这个问题。如果我在while循环中添加query.next()
,我只得到一次迭代。
如果查询成功,有一个bool
函数会返回true
。回顾文档:
成功执行的SQL语句将查询的状态设置为活动,以便isActive()返回true。否则,查询的状态将设置为非活动状态。
这是检查结果的方法。如果是false
,那么您应该尝试重写sql查询文本,以便函数sql单词(如SELECT、FROM等)使用大写(文档中显示的方式),并尝试再次执行查询。
下面是文档中的一个例子:
QSqlQuery query("SELECT country FROM artist");
while (query.next()) {
QString country = query.value(0).toString();
doSomething(country);
}
您可以查看Qt5发行版中包含的sqlbrowser示例。在数据库中运行查询。