使用tableView显示数据库的内容
plainModel = new QSqlRelationalTableModel();
plainModel->setTable("member");
plainModel->setEditStrategy(QSqlTableModel::OnManualSubmit);
plainModel->setRelation(6, QSqlRelation("card", "cardType", "typeName"));
plainModel->select();
ui->tableView->setModel(plainModel);
ui->tableView->setItemDelegate(new QSqlRelationalDelegate(ui->tableView)); // 如果去掉,编辑时,会按照文本编辑进行修改; 否则,按照comboBox选择修改
ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); // 选择模式是 “按整行选择”
ui->tableView->resizeColumnsToContents(); // 按照内容自动分配列宽度
数据可以正常显示。但是当我双击修改里面的内容后,想通过 submitAll 更新到数据库里时,发现返回 submit success 但是数据会自动恢复以前的值
void Dialog_memberList::on_pushButton_accept_clicked()
{
// 保存修改
if(plainModel->submitAll() == false)
{
qDebug() << "submit false";
}else
{
qDebug() << "submit success";
}
}
如果我添加新行
row = plainModel->rowCount();
plainModel->insertRows(row, 1);
并进行修改,submitAll就可以正常添加到数据库中。请问是什么问题?该怎么解决?
------解决方案--------------------
回家查书吧!!!!