Я пытаюсь получить доступ к mysql базе данных в qt C++.QSqlTableModel filter no results
У меня разные таблицы и вы хотите их вывести на 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);
}
Идентификационный фильтр (футляр 0) отлично работает. Но все остальное (имя, фамилия и т. Д.) Этого не делает. Я просто получил пустой стол. Таким образом, я могу видеть имена столбцов (поэтому я считаю, что мой синтаксис sql верен), но нет записи, независимо от того, что я набираю.
Есть ли ошибка в моем исходном коде? Или как я могу заставить это работать?
Try инспектировать вашу строку запроса с QDebug(), например QDebug() << QString ("contacts_firstName LIKE" + '%' + mUi-> searchContactsLine-> текст() + '%'); и опубликуйте свой результат – CppChris
@ChrisG Спасибо за подсказку :) –