Я хочу назначить конкретный идентификатор материала в поле со списком, как только я нажму на строку в табличном представлении.
void FictionSection::on_tblFiction_clicked(const QModelIndex &index)
{
int indicator = ui->tblFiction->model()->data(index).toInt();
QSqlQuery query;
query.prepare(" select fic_bk_id,material_id,no_of_cpy,shelf_num,edition from fiction ""where material_id= :id or no_of_cpy=:copy or shelf_num=:shelf or edition=:edition");
query.bindValue(":id",indicator);
query.bindValue(":copy",indicator);
query.bindValue(":shelf",indicator);
query.bindValue(":edition",indicator);
//Assigning table values to fields
if(query.exec())
{
while(query.next())
{
ui->lneditMngFicId->setText(query.value(0).toString());
ui->cmboxMngId->setCurrentText(query.value(1).toString());
ui->lneditMngCpy->setText(query.value(2).toString());
ui->spinbxMngShlf->setValue(query.value(3).toInt());
ui->spinbxMngEdtn->setValue(query.value(4).toInt());
}
}
else
{
QMessageBox :: critical(this,"Error","Couldn't load the values");
}
}
Хотя другие поля получают значения, как только я нажимаю на любое поле со списком строк, они не получают требуемого значения. Идентификатор материала хранится в базе данных как int. Я много пытался решить эту проблему. Пожалуйста, помогите мне решить эту проблему. заранее спасибо
Это из-за пробела в вашем запросе, связанного с material_id:
material_id= :id
Других решений пока нет …