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.dll及qsqlmysqld.dll
拷贝至msvc2017_64的驱动文件夹,替换原本的驱动,如下图:
理论上是可以生成那两个dll的,但是我搞了半天也没有生成,最后拿了别人生成成功的那两个dll...这里我也卡住了
最后加载驱动,将mysql解压目录lib目录下的libmysql.dll拷贝至msvc2017_64的bin目录下:
编译运行:
成功了!
**我搞了一天,百度了很久,最后还是没有生成那两个dll,还是拿了别人生成成功的,然后把数据库的那个dll加进来,即使是这样也不一定成功,
因为我之前疏忽导致环境变量没配好,期间我重装了两次Qt,最后顽强的连接上了,搞了一天,整个人都不好了,快崩溃了,总之这3个dll要搞到位,
环境变量也要配好,连接数据库的代码也要注意**