第一范文网 - 专业文章范例文档资料分享平台

QT操作数据库 学习基础

来源:用户分享 时间:2025/7/19 5:15:19 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

FROM scores WHERE id=19\ if(query.next()) { //str = query.value(0).toString(); str = \中国\ query.exec(\VALUES(’\ } database.commit(); } 注意,如果str为中文字符串,在SQL语句中需要标明’str’(用单引号括起),如果是英文或数字字符串,能不加单引号(指的是包含在双引号内的SQL语句)

9.使用SQL Model类

QSqlQueryModel——一个只读的读取数据库数据的模型 QSqlTableModel——一个可读写的单一表格模型,能不用写SQL语句

QSqlRelationalTableModel——QSqlTableModel的一个子类

这些类都继承于QAbstractTableModel,而他们又都继承于QAbstractItemModel

(1) QSqlQueryModel的使用QSqlQueryModel querymodel; querymodel.setQuery(\scores ORDER BY id ASC\ for

(num=0;numquerymodel.rowCount();num++) { str += QString::number(querymodel.record(num).value(\

()); str += \ str +=

querymodel.record(num).value(\ //注意这里的value()参数能是index(索引)也能是字段名,前面QSqlQuery的value()参数只能是index str += \\n\ } label->setText(str); (2) QSqlTableModel的使用

① 读取数据QSqlTableModel tablemodel;

tablemodel.setTable(\ tablemodel.setFilter(\> 10\ tablemodel.setSort(0,Qt::DescendingOrder); tablemodel.select(); for

(num=0;numtablemodel.rowCount();num++) { str += QString::number(tablemodel.record(num).value(\)); str += \ str +=

tablemodel.record(num).value(1).toString(); str += \\n\ } label->setText(str);

② 修改数据QSqlTableModel tablemodel;

tablemodel.setTable(\ tablemodel.setFilter(\> 10\ tablemodel.setSort(0,Qt::DescendingOrder); tablemodel.select(); for

(num=0;numtablemodel.rowCount();num++) { QSqlRecord record = tablemodel.record(num); record.setValue(\

2\ tablemodel.setRecord(num,record); } if(tablemodel.submitAll()) label->setText(\修改成功!\ else label->setText(\修改失败!\ 或能用setData()来修改,代码如下: QSqlTableModel tablemodel; tablemodel.setTable(\ tablemodel.setFilter(\

tablemodel.setSort(0,Qt::DescendingOrder); tablemodel.select();

tablemodel.setData(tablemodel.index(2,1),\修改\ if(tablemodel.submitAll()) label->setText(\修改成功!\ else label->setText(\修改失败!\ ③ 删除数据tablemodel.removeRows(row, 5);

//removeRows()第一个参数为要删除的第一行的行数,第二个参数为要删除的总行数; tablemodel.submitAll(); //注意,利用QSqlTableModel修改或删除数据,最后都要使用submitAll()执行更改

④ 插入数据QSqlRecord record = tablemodel.record(); record.setValue(\插入的\ tablemodel.insertRecord(2,record);

注意,此处插入利用insertRecord()函数,该函数第一个参数为插入到tablemodel的第几行,第二个参数为记录,注意这里的记录一 定要和tablemodel中的记录匹配,故

QSqlRecord record = tablemodel.record();另外,插入操作不用submitAll(),因为,insertRecord()返回bool值。 10.使用QTableView

开头处要使用#includeQTableView *view = new QTableView(); view->setModel(&model); view->setEditTriggers(QAbstractItemView::NoEditTriggers); view->show();

小结:关于QT操作数据库 学习基础的内容介绍完了,希望本文对你有所帮助,更多关于数据库的内容请参考编辑推荐。

搜索更多关于: QT操作数据库 学习基础 的文档
QT操作数据库 学习基础.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c0vuht9d3ii4qfr01784a35m4y31ezc01579_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top