QT --Qtableview 与Qsql 应用三 修改

目的:对应用一的功能进一下完善,增加修改功能。双击项目修改项。点击修改按钮,修改数据库的项并显示。

.h

private slots:
  .....................
    bool upDateItem();

.cpp

bool MainWindow::upDateItem()
{
    int id;
    QString firstName;
    QString lastName;
    int rowToUpData;
    QMap<int, int> rowMap;

    QAbstractItemModel *model = ui->tableView->model();
    QItemSelectionModel *selections = ui->tableView->selectionModel();
    QModelIndexList selected = selections->selectedIndexes();
    if(selected.length() > 1)
    {
        QMessageBox::critical(this,"提示","请只选择一行来更改!");
        return false;
    }
     rowToUpData = ui->tableView ->currentIndex().row();
     QModelIndex index =model->index(rowToUpData,0);
    // id = model->data(index).toInt();
     id=index.sibling(rowToUpData,0).data().toInt();
     firstName = index.sibling(rowToUpData,1).data().toString();
     lastName = index.sibling(rowToUpData,2).data().toString();
     QSqlQuery query;
     QString cmd;
     cmd =QString("UPDATE person SET firstname =  '%1', lastname =  '%2'  WHERE id =  %3").arg(firstName).arg(lastName).arg(id);
     query.exec(cmd);
     if(!query.isActive())
     {
         query.finish();
         return false;
     }
     else
     {
          dataModel->clear();
     }
     query.finish();

    selectDb();
    return true;

}

总结:易错点在于数据库的语句。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值