0

我正在尝试使用 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 中显示查询结果

4

2 回答 2

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);
}
于 2013-03-22T11:17:35.660 回答
-1

我使用 pyqt,但通常使用选择查询,我开始在 pyqt 中使用 .first() 而不是 .exec() .exec_() 获取数据。之后 next() 工作得很好。

于 2018-03-06T17:16:01.857 回答