当前位置: 代码迷 >> QT开发 >> tableView不能修改数据库内容解决方案
  详细解决方案

tableView不能修改数据库内容解决方案

热度:44   发布时间:2016-04-25 03:23:38.0
tableView不能修改数据库内容
使用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就可以正常添加到数据库中。请问是什么问题?该怎么解决?
------解决方案--------------------
回家查书吧!!!!
  相关解决方案