在vs中,qt连接mysql运行时,出现QSqlQuery::exec:database not open,如何解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在vs中,qt连接mysql运行时,出现QSqlQuery::exec:database not open,如何解决相关的知识,希望对你有一定的参考价值。

#include <QtCore/QCoreApplication>
#include <QtSql>
int main(int argc, char *argv[])

QCoreApplication a(argc, argv);
QSqlDatabase db=QSqlDatabase::addDatabase("Qmysql");
db.setDatabaseName(":xinxi:");//mysql中存在的数据库xinxi
if(!db.open())


QSqlQuery query;
query=QSqlQuery::QSqlQuery(db);
query.exec("select wendu form shuju");//数据库中的表格shuju,表格中的wendu
while(query.next())

int ele0=query.value(0).toInt();
QString ele1=query.value(1).toString();
qDebug()<<ele0<<ele1;

db.close();
return a.exec();

要设置用户名密码之类的吧。。?
db.setHostName("localhost"); //设置数据库主机名
db.setDatabaseName("test"); //设置数据库名
db.setUserName("root"); //设置数据库登入用户名
db.setPassword("123456"); //设计数据库登入密码
自己试试。
在if(!db.open())

里面最好输出一下,看看是否open成功追问

你好,设置了,但结果还是database not open,不会和我的机子有关系吧,我的是win7的,是不是xp的就可以了。

参考技术A 在QT里面开了SQLITE的数据库,那还怎么使用mySQL的table呢?最好重新将mysql的数据导入到SQLITE中,再在QT里面使用这个SQLITE数据库文件

[qt][原创]qttools中配置有多余Default Qt/Win version残留清除办法

在vs中使用qt插件是qt开发的一种,但是在配置qt时其实会有很多问题。

在Qt VS Tools的Qt Options已经配置好Qt Versions后如果删除QT程序之后会出现Default Qt/Win version任然存在,这是如果再添加一个话就不能出现重名了,如果新建一个其他名字的话其实在vs中还是不能正常运行qt,会出现点击ui文件vs会无故重启或者点击Launch Qt Desiger报错:未将对象引用设置到对象的实例。

错误如下图所示:

或者类似错误提示:the given name has already existed

解决方法:

 我也是尝试了很多种办法,比如:删除Qt VS Tools和vs都不能解决,查找C:\\Users\\用户\\AppData\\Local\\Microsoft\\VisualStudio中相关配置文件都无果,后来想到可能是写到注册表中,这样怎么查找文件都是找不到的,最终终于在注册表中找到相应的配置。

在注册表中直接搜索msvc2017_64,经过一段时间的检索都能找到相关文件夹,如图中所示Qt5VS2017,他的下面还有一个Versions文件夹,如果我们删除了qt程序,这个文件夹下的子文件夹msvc2017_64就会被删除,但此文件夹的值DefaultQtVersion和VersionNames任然存在,只要把Versions文件夹删除即可解决问题。

注意不同qt版本可能位置不一样,一般都是在HKEY_USERS\\S-1-5-21XXXXXXX下面,找找就可以找到

 

 

 

 

以上是关于在vs中,qt连接mysql运行时,出现QSqlQuery::exec:database not open,如何解决的主要内容,如果未能解决你的问题,请参考以下文章

QT6.0+mysql8.0+VS2019连接数据库

vs Qt mysql 打包程序 Driver not loaded Driver not loaded

[qt][原创]qttools中配置有多余Default Qt/Win version残留清除办法

VS2013,C++:未知的“线程 X 以代码 0 退出”

在vs2010编译qt程序时就会出现错误无法打开文件"Qt5Cored.lib"

Qt 连接MySQL数据库(很多相关文章)