簡體   English   中英

如何在Qt中使用SQLite

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM