好文档 - 专业文书写作范文服务资料分享网站

QT操作数据库 学习基础

天下 分享 时间: 加入收藏 我要投稿 点赞

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操作数据库 学习基础

FROMscoresWHEREid=19\if(query.next()){//str=query.value(0).toString();str=\中国\query.exec(\VALUES(’\}database.commit();}注意,如果str为中文字符串,在SQL语句中需要标明’st
推荐度:
点击下载文档文档为doc格式
0vuht9d3ii4qfr01784a35m4y31ezc01579
领取福利

微信扫码领取福利

微信扫码分享