Qt|Qt数据库 QSqlTableModel实例操作(1)(2)

2、进入“撤销修改”按钮单击事件槽函数,并更改如下:


  1. void Widget::on_pushButton_2_clicked() //撤销修改
  2. {
  3. model->revertAll();
  4. }
它只有简单的一行代码。
我们需要在widget.cpp文件中添加头文件:

  1. #include
  2. #include
此时运行程序,效果如下:
Qt|Qt数据库 QSqlTableModel实例操作(1)(2)
文章图片

我们将“陈刚”改为“李强”,如果我们点击“撤销修改”,那么它就会重新改为“陈刚”,而当我们点击“提交修改”后它就会保存到数据库,此时再点击“撤销修改”就修改不回来了。
可以看到,这个模型可以将所有修改先保存到model中,只有当我们执行提交修改后,才会真正写入数据库。当然这也是因为我们在最开始设置了它的保存策略:

  1. model->setEditStrategy(QSqlTableModel::OnManualSubmit);
OnManualSubmit表明我们要提交修改才能使其生效。
第二,查询操作。
1.我们进入“查询”按钮的单击事件槽函数,更改如下:

  1. void Widget::on_pushButton_7_clicked() //查询
  2. {
  3. QString name = ui->lineEdit->text();
  4. model->setFilter(QObject::tr(“name = ‘%1′”).arg(name)); //根据姓名进行筛选
  5. model->select(); //显示结果
  6. }
我们使用setFilter()函数进行关键字筛选,这个函数是对整个结果集进行查询。为了使用变量,我们使用了QObject类的tr()函数。
2.我们进入“返回全表”按钮的单击事件槽函数,更改如下:

  1. void Widget::on_pushButton_8_clicked() //返回全表
  2. {
  3. model->setTable(“student”); //重新关联表
  4. model->select(); //这样才能再次显示整个表的内容
  5. }
为了再次显示整个表的内容,我们需要再次关联这个表。
运行效果如下:
Qt|Qt数据库 QSqlTableModel实例操作(1)(2)
文章图片

我们输入一个姓名,点击“查询”按钮后,就可以显示该记录了。再点击“返回全表”按钮则返回。

【Qt|Qt数据库 QSqlTableModel实例操作(1)(2)】 转载注明地址:http://www.chengxuyuans.com/Symbian/16738.html

    推荐阅读