当我按下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");
}
答案 0 :(得分:1)
您面临的错误是什么?使用QSqlDatabase :: lastError()在打开连接时检索错误(如果有)。
另外我认为你试图打开数据库两次。一旦你在按钮上创建数据库对象和其他按钮。在按钮单击时使用isOpen()方法检查数据库是否已打开。
答案 1 :(得分:1)
我有答案!
我忘了为Query设置数据库。
它必须如下所示:model->setQuery("SELECT id, Nachname, Vorname, Ort FROM testtable", database);