Qt数据库利用QSqlQuery类执行SQL语句.DOC
文本预览下载声明
实验九 HYPERLINK /?p=82 \o Permanent Link to 二十三、Qt数据库(三)利用QSqlQuery类执行SQL语句(一)Qt数据库QSqlQueryModel
(一)实验目的:
熟练掌握数据库编程中QSqlQueryModel类的使用,并能结合MySQL进行编程。
(二)实验要求:
1、按下面的步骤完成程序的设计,同时思考和掌握相对应的知识点。
2、提交建立的软件项目。
(三)实验内容:
Qt中使用了自己的机制来避免使用SQL语句,它为我们提供了更简单的数据库操作和数据显示模型。它们分别是只读的QSqlQueryModel,操作单表的QSqlTableModel和以及可以支持外键的QSqlRelationalTableModel。这次实验先学习QSqlQueryModel的使用。
QSqlQueryModel类为SQL的结果集提供了一个只读的数据模型,下面我们先利用这个类进行一个最简单的操作。
1、使用MySQL query Browser创建数据库,数据库名称为“Worker”。
2、新建Qt4 Gui Application工程,工程名为queryModel ,Base class选QWidget。工程建好后,添加C++ Header File ,命名为database.h,更改其内容如下:
3、然后进入main.cpp,将其内容更改如下:
4、下面我们在widget.ui中添加一个显示为“查询”的PushButton,并进入其单击事件槽函数,更改如下:
我们新建了QSqlQueryModel类对象model,并用setQuery()函数执行了SQL语句“(“select * from worker”);”用来查询整个worker表的内容,可以看到,该类并没有完全避免SQL语句。然后我们设置了表中属性显示时的名字。最后我们建立了一个视图view,并将这个model模型关联到视图中,这样数据库中的数据就能在窗口上的表中显示出来了。
5、在widget.cpp中添加头文件:
6、运行程序,并按下“查询”按键,效果如下:
下面利用这个模型来操作数据库。
7、在void Widget::on_pushButton_clicked()函数中添加如下代码:
在我们在widget.cpp中添加头文件:
此时运行程序,效果如下:
8、当然我们在这里也可以使用前面介绍过的query执行SQL语句。
例如我们在void Widget::on_pushButton_clicked()函数中添加如下代码:
QSqlQuery query = model-query();query.exec(“select name from worker where id = 2 “);query.next();qDebug() query.value(0).toString();
这样就可以输出表中的值了,你可以运行程序测试一下。
9、添加记录并让其动态地显示我们的更新,可以将函数更改如下:
10、运行程序,效果如下:
可以看到,这时已经将新添的记录显示出来了。
显示全部