QSqlQuery::exec: database not open
时间: 2023-10-09 16:11:33 浏览: 140
这个错误通常表示你的程序无法连接到数据库。你需要确保在使用QSqlQuery之前打开数据库连接。在使用QSqlDatabase连接到数据库之前,你需要使用QSqlDatabase::addDatabase()函数来创建一个数据库连接对象,并设置相应的数据库驱动程序和连接参数。在连接成功后,你可以使用QSqlQuery执行SQL查询。以下是一个连接到SQLite数据库并执行查询的示例代码:
```C++
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>
int main()
{
// 创建一个SQLite数据库连接对象
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
// 设置数据库文件名
db.setDatabaseName("mydatabase.db");
// 打开数据库连接
if(!db.open()) {
qWarning() << "Failed to open database:" << db.lastError().text();
return 1;
}
// 执行SQL查询
QSqlQuery query;
query.exec("SELECT * FROM mytable");
// 处理查询结果
while(query.next()) {
int id = query.value(0).toInt();
QString name = query.value(1).toString();
qDebug() << "id:" << id << "name:" << name;
}
// 关闭数据库连接
db.close();
return 0;
}
```