2017-06-22 13 views
3

Qtのデータベースから1行だけをtableviewに表示します。 これは私の現在のコードです: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

のように、1として制限を設定しますなぜすべての行を選択するのですか? –

+0

行17について特別なことを知り、それに応じてクエリを構築する必要があります。 – HazemGomaa

答えて

0

@ h-gomaaが言ったように、あなたは適切にクエリを書く必要があります。

あなたがprepareを呼び出すと、それはあなたがあなたのテーブルにidを持っていると仮定すると、このようなものでなければなりません:

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

あなたは、単一の行をしたい場合は、

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()); 
} 
関連する問題