Qt programm无法打开我的MySql数据库

时间:2014-09-18 10:52:49

标签: c++ mysql database eclipse qt

当我按下Button时,它会查看此错误: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);
}

怎么了?数据库是一个QSqlDatabase。 model是一个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");
}

2 个答案:

答案 0 :(得分:1)

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

另外我认为你试图打开数据库两次。一旦你在按钮上创建数据库对象和其他按钮。在按钮单击时使用isOpen()方法检查数据库是否已打开。

答案 1 :(得分:1)

我有答案! 我忘了为Query设置数据库。 它必须如下所示:model->setQuery("SELECT id, Nachname, Vorname, Ort FROM testtable", database);