我正在尝试使用QT框架连接并执行查询,我可以连接到mysql数据库,我已经测试了查询并验证了它在数据库上的工作原理。我认为mysql驱动程序已正确安装,因为我可以连接并且不会抛出任何错误
void Login::on_loginButton_clicked()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1");
db.setDatabaseName("TestBase");
db.setUserName("username");
db.setPassword("password");
if (!db.open()) {
QMessageBox::critical(0,"Database Error","Could not connect to the database, check your internet connection.");
}
QSqlQuery data("SELECT * FROM `TestBase`.`Users` WHERE `userName` = 'Afonso'");
//data.exec("SELECT * FROM `TestBase`.`Users` WHERE `userName` = 'Afonso'");
QMessageBox::information(NULL, "Query executed", "The query returned: " + data.exec());
}
我也试过
data.exec("insert query here");
data.next();
似乎没有任何作用
我试图在QMessageBox中显示查询结果
答案 0 :(得分:0)
QSqlQuery query(db);
query.prepare("SELECT * FROM `TestBase`.`Users` WHERE `userName` = :user_name");
query.bindValue(":user_name", "Afonso");
if (!query.exec())
{
qDebug() << query.lastError().text();
retrun;
}
while (query.next())
{
QVariant v = query.value(0);
}
答案 1 :(得分:-1)
我使用pyqt,但通常使用select查询,我开始使用 .first()而不是pyqt中的.exec()。exec_()。 之后,next()工作正常。