原因:
通过查看其他博客得知,第一种原因:安装qt时没有勾选Source选项
解决方法:
可以通过everything查找MaintenanceTool.exe 点开即可添加控件
原因2:
bool ok = db.open();
if (ok){
QMessageBox::information(this, "infor", "success");
}
else {
qDebug() << "Failed to connect to the database:" << db.lastError().text();
}
}
加上这段代码,可打印连接失败的原因,便于寻找解决方法,我遇到的问题打印如下:
即ODBC上创建的是32位的数据库,而我的qt程序是64位的,或者反之。
解决:首先确定是否安装ODBC,安装后,点击电脑左下角开始按钮搜索odbc
点开对应的位数的ODBC(我这里是64位,如果自己的程序是32位的就下载32位的ODBC,
点击系统DSN
点击添加->点击如图选项(注意要先安装64位的mysql驱动才有这个选项,具体安装方法可以百度)
点击完成-》先别点ok!!!
这时还需要在小皮面板里面创建数据库,信息和他一样
创建完成后点击ODBC的test,弹出信息看是否连接成功,显示连接成功,那么就大功告成!
在实际代码中,数据库的名字位ODBC中设置的数据源名字,例如此例中在代码中写的数据库名字就是QQ。
总结:搞清楚ODBC与Mysql客户端的关系:
ODBC是一个媒介用来连接我们的数据库和程序,在ODBC中建立的数据库并不是已经建好的可以用的数据库实体,需要在Mysql中建一个与它相应的数据库来建立连接。ODBC不仅可以连接MYSQL这一种数据库,它还可以下载很多种数据库驱动,下载之后就可以连接相应的数据库。
ODBC相当于一个Mysql的客户端,Mysql是服务端。
以上言论仅仅是自学过程中的个人理解,如果认为理解有误望指出。