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

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

 
  
  1. void Widget::on_pushButton_2_clicked() //撤销修改  
  2. {  
  3.      model->revertAll();  

它只有简单的一行代码。

我们需要在widget.cpp文件中添加头文件:

 
  
  1. #include <QMessageBox> 
  2. #include <QSqlError> 

此时运行程序,效果如下:

Qt数据库 QSqlTableModel实例操作

我们将“陈刚”改为“李强”,如果我们点击“撤销修改”,那么它就会重新改为“陈刚”,而当我们点击“提交修改”后它就会保存到数据库,此时再点击“撤销修改”就修改不回来了。

可以看到,这个模型可以将所有修改先保存到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(); //显示结果  

我们使用setFilter()函数进行关键字筛选,这个函数是对整个结果集进行查询。为了使用变量,我们使用了QObject类的tr()函数。

2.我们进入“返回全表”按钮的单击事件槽函数,更改如下:

 
  
  1. void Widget::on_pushButton_8_clicked() //返回全表  
  2. {  
  3.     model->setTable(“student”);   //重新关联表  
  4.     model->select();   //这样才能再次显示整个表的内容  

为了再次显示整个表的内容,我们需要再次关联这个表。

运行效果如下:

Qt数据库 QSqlTableModel实例操作

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

转载注明地址:http://www.chengxuyuans.com/Symbian/16738.html

你可能感兴趣的:(Qt,嵌入式)