在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的就可以了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-11
在QT里面开了SQLITE的数据库,那还怎么使用mySQL的table呢?最好重新将mysql的数据导入到SQLITE中,再在QT里面使用这个SQLITE数据库文件