vs2017中Qt数据库连接

配置环境变量,

把qt的msvc2017_64的bin目录添加至环境变量(具体我就不累赘了,就是那个path)

新建Qt项目

 

 

 

 

 

 点击Finish

然后找到main.cpp,进行编辑,代码如下

 1 #include "test.h"
 2 #include<QtWidgets/QApplication>
 3 #include<qsqldatabase.h>
 4 #include<qmessagebox.h>
 5 #include<qdebug.h>
 6 #include<qsqlerror.h>
 7 int main(int argc, char *argv[])
 8 {
 9     QApplication a(argc, argv);
10     /*test w;
11     w.show();
12     */
13     qDebug() << QSqlDatabase::drivers();
14     QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
15     db.setDatabaseName("test");
16     db.setHostName("localhost");
17     db.setUserName("root");
18     db.setPassword("root");
19     db.setPort(3306);
20     if (db.open()) {
21         QMessageBox::warning(NULL, QString("Tip"), QString("success"), QMessageBox::Yes);
22         return -1;
23     }
24     else {
25         QMessageBox::critical(0, QObject::tr("fail"), db.lastError().databaseText(), QMessageBox::Cancel);
26         return 0;
27     }
28     //return a.exec();
29 }

要特别注意db.setPassword里面的密码要和navicat里面设置的密码保持一致,不然会有如下结果:

 

 把项目属性设置一下:

 

然后顺着Qt安装目录找到这个mysql.pro,

 

 

 

选择编译器后点击Configure Project

 

 

指定mysql链接库:

 

 

将生成路径(mysql/lib)下刚刚生成的驱动文件qsqlmysql.dllqsqlmysqld.dll

拷贝至msvc2017_64的驱动文件夹,替换原本的驱动,如下图:

 

 

 

 理论上是可以生成那两个dll的,但是我搞了半天也没有生成,最后拿了别人生成成功的那两个dll...这里我也卡住了

最后加载驱动,将mysql解压目录lib目录下的libmysql.dll拷贝至msvc2017_64bin目录下

 

 

 

 编译运行:

 

 成功了!

**我搞了一天,百度了很久,最后还是没有生成那两个dll,还是拿了别人生成成功的,然后把数据库的那个dll加进来,即使是这样也不一定成功,

因为我之前疏忽导致环境变量没配好,期间我重装了两次Qt,最后顽强的连接上了,搞了一天,整个人都不好了,快崩溃了,总之这3个dll要搞到位,

环境变量也要配好,连接数据库的代码也要注意**

 

posted @ 2020-03-30 19:26  youlj  阅读(1443)  评论(0编辑  收藏  举报