如何使用某些条件在QTableView中显示数据库中的数据

时间:2018-04-18 10:24:22

标签: c++ qt qtsql

我是Qt编程的初学者,我正在开发一个项目,我正在使用SQLite数据库。

我的数据库中有20行,我只想在第一次按下show button时显示QTableView中的最后五行。如果我再次按下显示按钮,则应该从数据库中显示最后10行。

但我不知道应该写什么代码。请帮帮我。

看看这个图像我只想在第一次单击“显示”按钮时显示最后五行,然后在第二次单击“显示”按钮时显示最后10行。

提前谢谢。

这是我的代码,用于将SQLite数据库中的数据显示为QTableView

void SecondWindow::on_pushButton_show_clicked()
{
    MainWindow conn;
    QSqlQueryModel *model = new QSqlQueryModel();
    conn.openConn();
    QSqlQuery *qry = new QSqlQuery(conn.mydb);
    qry->prepare("select eid,name,surname,salary from employeeInfo");
    qry->exec();
    model->setQuery(*qry);
    ui->tableView->setModel(model);
    conn.closeConn();
    qDebug() << (model->rowCount());
}

2 个答案:

答案 0 :(得分:0)

您正在SQL查询中寻找 LIMIT 关键字,例如:

"select eid,name,surname,salary from employeeInfo LIMIT 10 OFFSET 10"

将在前10行后返回10行。

答案 1 :(得分:0)

如果您不想每次都发送SQL查询,只是更改显示的元素数量,您可以编写基于QAbstractProxyModel的模型类。您只需覆盖mapFromSourcemapToSourcerowCount方法