qt c ++でmysqlデータベースにアクセスしようとしています。
さまざまなテーブルがあり、それらを に出力したいと考えていますQTableView
。
を使用していますがQSqlTableModel
、これはうまく機能しますが、結果をフィルタリングしたいときに問題が発生します..
ソースコードの主要部分は次のとおりです。
mModelContacts->setTable("contacts");
mModelContacts->select();
mUi->tableContacts->setModel(mModelContacts);
void MainWindow::on_submitContactsButton_clicked()
{
switch(mUi->comboBoxContacts->currentIndex())
{
case 0:
mModelContacts->setFilter("contacts_id = "+mUi->searchContactsLine->text());
break;
case 1:
mModelContacts->setFilter("contacts_firstName LIKE "+'%'+mUi->searchContactsLine->text()+'%');
break;
case 2:
mModelContacts->setFilter("contacts_lastName LIKE "+'%'+mUi->searchContactsLine->text()+'%');
break;
case 3:
mModelContacts->setFilter("contacts_city LIKE "+'%'+mUi->searchContactsLine->text()+'%');
break;
case 4:
mModelContacts->setFilter("contacts_phoneNumber LIKE "+'%'+mUi->searchContactsLine->text()+'%');
break;
}
mModelContacts->select();
mUi->tableContacts->setModel(mModelContacts);
}
ID フィルター (ケース 0) は正常に機能します。しかし、他のすべて (ファーストネーム、ラストネームなど) はそうではありません。空のテーブルが表示されます。したがって、列名は表示されますが (したがって、SQL 構文は正しいと思います)、何を入力してもエントリはありません。
ソースコードに誤りはありますか? または、どうすればこれを機能させることができますか?