C++ Qt程序无法打开我的MySql数据库

C++ Qt程序无法打开我的MySql数据库,c++,mysql,database,eclipse,qt,C++,Mysql,Database,Eclipse,Qt,当我按下按钮时,它会查看以下错误:QSqlQuery::exec:数据库未打开 void Tester::pushButtonClicked() { if (database.open() ) { model->setQuery("SELECT id, Nachname, Vorname, Ort FROM testtable"); model->setHeaderData(0, Qt::Horizontal, tr("ID"));

当我按下按钮时,它会查看以下错误:QSqlQuery::exec:数据库未打开

void Tester::pushButtonClicked()
{
    if (database.open() )
    {
        model->setQuery("SELECT id, Nachname, Vorname, Ort FROM testtable");
        model->setHeaderData(0, Qt::Horizontal, tr("ID"));
        model->setHeaderData(1, Qt::Horizontal, tr("Nachnamme"));
        model->setHeaderData(2, Qt::Horizontal, tr("Vorname"));
        model->setHeaderData(3, Qt::Horizontal, tr("Ort"));
    } else
    {
        qDebug("Nicht geöffnet");
    }
    meineView->setModel(model);
}
怎么了?数据库是一个QSQL数据库。模型是一个QSqlQueryModel。 我已将其连接为:

database = QSqlDatabase::addDatabase("QMYSQL", "conn1");
//database->addDatabase("QMYSQL", "conn1");
database.setHostName("127.0.0.1");
database.setPort(3306);
database.setDatabaseName( "mydb" );
database.setUserName("root");
database.setPassword("XXXX");
if ( !database.open() )
{
    qDebug("Couldn't open DB");
}

你面临的错误是什么?使用QSQLDABASE::lastError在打开连接时检索错误(如果有)

另外,我认为您正在尝试打开数据库两次。创建数据库对象时,单击按钮中的其他对象。在单击按钮时使用isOpen方法检查数据库是否已打开。

我有答案! 我忘了为查询设置数据库。
它必须看起来像:model->setQuerySELECT id、Nachname、Vorname、testtable中的Ort、数据库

我不能使用QSQLDABASE::lastError,它说无效参数的候选参数是:QSQLRERROR lastError,但QSQLRERROR lastError不起作用。当我这样写时,它会产生相同的错误,我在init方法中删除.isOpen:ifdatabase.isOpen==false{database.open;model->setQuerySELECT id,Nachname,Vorname,Ort来自testtable;model->setHeaderData0,Qt::Horizontal,trID;model->setHeaderData1,Qt::Horizontal,trnachname;model->setHeaderData2,Qt::Horizontal,trVorname;您也可以接受自己的答案。