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要搞到位,

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM