2017-06-22 91 views
3

我想在我的數據庫中只顯示一行,在tableview qt中。 這是我當前的代碼:如何在Qt中使用SQLite

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。

+0

爲什麼選擇所有行? – 2017-06-22 14:21:36

+0

您需要知道第17行的特別之處並相應地構建您的查詢! – HazemGomaa

回答

0

正如@ h-gomaa所說,你需要正確編寫你的查詢。

當你調用prepare,它應該是這樣的,假設你在你的表有一個id

qry->prepare(QString("SELECT username FROM Waehrung_MMI WHERE id = :id")); 
qry->bindValue(":id", 17); 
0

如果你想單列然後設置限制爲1,像

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()); 
}