我不知道这个例子发生了什么。
我的联系还可以。
查询结果正常(请参阅下面的应用程序输出)...但我的qtableview为空。
results screen with 9 empty lines
应用程序输出显示9行,这些行是我表中的正确结果。 rowCount = 9 ...但是tableview完全是空的。
#include "pedidos.h"
#include "ui_pedidos.h"
Pedidos::Pedidos(QWidget *parent) :
QDialog(parent),
ui(new Ui::Pedidos)
{
ui->setupUi(this);
Login conn;
if(!conn.connOpen())
ui->label_pedidos_conn->setText("Falha na conexão ao Database");
else
ui->label_pedidos_conn->setText("Database Ok");
}
Pedidos::~Pedidos()
{
delete ui;
}
void Pedidos::on_pushButton_load_pedidos_clicked()
{
Login conn;
QSqlQueryModel *modal=new QSqlQueryModel();
QTableView *view = new QTableView;
conn.connOpen();
QSqlQuery *qry=new QSqlQuery(conn.mydb);
qry->prepare("SELECT id_pedido,id_user FROM pedido WHERE status=0");
qry->exec();
modal->setQuery(*qry);
modal->setHeaderData(0, Qt::Horizontal, "Pedido");
modal->setHeaderData(1, Qt::Horizontal, "Usuário");
ui->tableView_pedidos->setModel(modal); // empty
view->setModel(modal); // second window
view->show(); // doesn´t work too ( empty )
while(qry->next()){
QString usuario = qry->value(0).toString();
qDebug() << "id:" << usuario;
}
conn.connClose();
qDebug() << (modal->rowCount());
}
我的应用程序输出在这里:
QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.
Database Ok
name: "124"
name: "125"
name: "126"
name: "127"
name: "128"
name: "129"
name: "131"
name: "225"
name: "308"
QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.
9
答案 0 :(得分:1)
你在那里调试的这段代码是多余的,并且在tableView可以使用它来获取数据之前,conn-&gt; connClose()il关闭数据库。
while(qry->next()){
QString usuario = qry->value(0).toString();
qDebug() << "id:" << usuario;
}
conn.connClose(); <---- remove this line!!!
qDebug() << (modal->rowCount());