【发布时间】:2013-03-11 18:26:40
【问题描述】:
我正在尝试使用 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 中显示查询结果
【问题讨论】:
-
QSqlQuery不带构造函数参数来执行它作为sql查询,执行sql查询使用exec()方法,查看最新错误使用lastError().text()。发布QMessageBox::information(NULL,"Query executed","The querry returned: " + data.lastError().text());的留言内容 -
它返回空,我尝试使用此代码
data.prepare("insert query here"); data.exec(); data.first(); QString result = data.value(0).toString()结果变量为 = 0 -
我也尝试执行
qDebug() << data.lastError();,它输出了QSqlError(-1, "", ""),我的google-fu就是查询正确执行了
标签: c++ mysql database qt qsqlquery