Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
Save data into database
I want to whrite data into a database (SQLite).
I have got a QDialog with some QComboboxes and I want to write that data into a database (SQLite).
I have already a connection do the database, set a new QSqlRelationalTableModel with some relations and mapped that model with a QDataWidgetMapper to the QComboboxes. It works fine.
Then I have set the "setEditStrategy" of the QSqlRelationalModel to "OnManualSubmit" and added a funktion to save the data in the database (with myModel->database().commit()). It works also very fine.
I have got also a QCombobox in the Dialog, whose data I set after editing an other QCombobox (I want to set a correspondig default value)
// select KsGrKey from the Source-Combo QModelIndex id = ui->txtKsKey->model()->index(index, 6); QString _KsGr = id.data().toString(); // set the correspondig Value of the second Combobox, that is also mapped with the model!!! ui->txtKsGr->setCurrentIndex(ui->txtKsGr->findText(_KsGr)); //auf KsGr-Combo den Wert setzen
In the Dialog it also works fine, it shows the value in the second combobox I want to see. But when I save the data the way I have explained above (with myModel->database().commit()), the data of the second Combobox is not written into the database.
Has anybody an idea what I am doing wrong??
If I set a value in the corresponding Combobox by hand and save the data, than the value is written into the database as I want it.
Is the method I am using to write the value to the corresponding Combobox the right?
Is there an additional function to write the data into the database?
Thank's for help
Hi and welcome to devnet,
Are you using a QDataWidgetMapper in your dialog ?
Might be silly but did you check that the second combo box contains the right value before saving the content of your mapper ?
Ok, first there was a mistake in the related datamodel of the corresponding combobox, and than there was a mistake in the submit-function. Now it works!!