[英]how to use SQLite with Qt
我想在tableview
中的qt中只顯示我的數據庫中的一行。 這是我目前的代碼:
void Favorites::on_pushButton_load_fav_clicked()
{
MainWindow conn;
QSqlQueryModel *modal = new QSqlQueryModel();
conn.connOpen();
QSqlQuery *qry = new QSqlQuery(conn.mydb);
qry->prepare("select username from Waehrung_MMI");
qry->exec();
modal->setQuery(*qry);
ui->tableView_favs->setModel(modal);
conn.connClose();
qDebug () << (modal->rowCount());
}
現在它顯示了整個列,但我只想顯示該列的第17行。
您可以使用SQL的限制功能來獲取單行。
void Favorites::on_pushButton_load_fav_clicked() {
MainWindow conn;
QSqlQueryModel * modal = new QSqlQueryModel();
conn.connOpen();
QSqlQuery * qry = new QSqlQuery(conn.mydb);
qry->prepare("select username from Waehrung_MMI limit 1");
qry->exec();
modal->setQuery( * qry);
ui->tableView_favs->setModel(modal);
conn.connClose();
qDebug() << (modal->rowCount());
}
正如@ h-gomaa所說,你需要正確地編寫你的查詢。
當你調用prepare
,它應該是這樣的,假設你的表中有一個id
:
qry->prepare(QString("SELECT username FROM Waehrung_MMI WHERE id = :id"));
qry->bindValue(":id", 17);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.