本文参考以下文章:
https://blog.csdn.net/qwpo135790/article/details/124106176
1 前言
准备工作需要查看自己qt的版本以及下载好qt和mysql相关软件
2 解决方法-1
示例代码:
(1)在.pro文件中添加下列代码:
QT +=sql
(2)在mainwindow.h文件中添加下列头文件:
#include<QSqlDatabase>
(3)测试代码
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1"); //连接本地主机
db.setPort(3306);
db.setDatabaseName("数据库名");
db.setUserName("用户名");
db.setPassword("密码");
bool ok = db.open();
if (ok){
QMessageBox::information(this, "infor", "link success");
}
else {
QMessageBox::information(this, "infor", "link failed");
qDebug()<<"error open database because"<<db.lastError().text();
}
运行代码,如果连接Mysql成功则输出下面结果:
如果连接Mysql失败则输出:
如果连接Mysql失败也不用太灰心,方法一在初次连接时很多情况下都会出错。下面我们来看看第二种成功率更高的连接方法。
3 解决方法-2
ODBC下载官网
(1)选择适合自己QT版本的ODBC版本。具体如何查看自己QT是多少位的,可以通过QT软件上方的菜单栏 帮助->About QT Creator 查看位数;
(2)打开
(3)点击添加按钮添加用户DSN
(4)点击MYSQL ODBC 8。0 ANSI Driver
(5)这里的内容按照下面提示对应填好即可。
(6)完成Mysql的添加后,可以点击Test按钮测试一下能否连接
(7)ODBC连接测试代码
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setHostName("127.0.0.1");
db.setPort(3306);
db.setDatabaseName("刚刚在ODBC中创建的Data source name"); //不是Database,记得别填错
db.setUserName("用户名");
db.setPassword("密码");
bool ok = db.open();
if (ok){
QMessageBox::information(this, "infor", "link success");
}
else {
QMessageBox::information(this, "infor", "link failed");
qDebug()<<"error open database because"<<db.lastError().text();
}