更新数据库操作实例
//更新数据操作
QString sqlUpdate = QString("update staff set name = '李四' where id= 3;");
if(!query.exec(sqlUpdate))
{
qDebug() << "update data error" << db.lastError();
}
(5)查询数据
查询操作语法:
SELECT column1, column2, column FROM table_name;
SELECT ---- 关键字
column1, column2 columnN --- 列的字段名
FROM ----- 关键字
table_name ----- 表名
从表中查询出指定字段的对应的值,如果想要拆线呢所有字段的值,可以采用:select * from 表名
SELECT * FROM table_name;
查询操作实例:
//查询操作
QString sqlSelect = QString("select * from staff;");
if(!query.exec(sqlSelect))
{
qDebug() << "insert data error" << db.lastError();
}
else
{
while(query.next())
{
qDebug() << query.value("name").toString();
qDebug() << query.value("age").toInt();
}
}
第五步:显示数据库信息到UI页面
//显示数据库信息
QString sqlSelect = QString("select * from staff;");
if(!query.exec(sqlSelect))
{
qDebug() << "query data error" << db.lastError();
}
else
{
while(query.next())
{
qDebug() << query.value("name").toString();
qDebug() << query.value("age").toInt();
ui->nameLabel->setText(query.value("name").toString());
ui->ageLabel->setText(QString::number(query.value("name").toInt()));
}
}
查询到最后一行数据显示到UI上:

第六步:关闭数据库
db.close();
3、Qt SQL模块数据库类接口
在Qt中为SQL数据库提供驱动程序层、SQL API层和用户界面层,其提供主要类的简要功能说明见下表
Qt SQL模块包含的主要类的功能
| 类名称 | 功能说明 |
|---|---|
| QSqlDatabase | 用于与数据库建立连接 |
| QSqlDriver | 访问特定sql数据库的抽象基类 |
| QSqlDriverCreator | 为某个具体的数据库驱动提供SQL驱动的模板类 |
| QSqlDriverCreatorBase | 所有SQL驱动器的基类 |
| QSqlDriverPlugin | 用于定制QSqlDriver插件的抽象类 |
| QSqlError | SQL数据错误细信息,可以用于访问上一次出错的信息 |
| QSqlField | 操作数据表或试图的字段的类 |
| QSqlIndex | 执行数据库索引的类 |
| QSqlQuery | 执行各种SQL语句的类 |
| QSqlQueryModel | SQL查询结果数据的只读数据模型,用于SELECT查询结果数据记录的只读显示 |
| QSqlRecord | 封装了数据记录操作的类 |
| QSqlRelation | 用于存储SQL外键信息的类,用于QSqlRelationalTableModel数据源中设置代码字段与关联数据表的关系 |
| QSqlRelationTableModel | 用于QSqlRelationalTableModel的一个代码字段的显示和编辑代理组件,一般是一个QComboBox组件,下拉列表中自动填充代码表的代码字段对应的实际内容 |
| QSqlRelationTableModel | 用于一个数据表的可编辑数据模型,支持代码字段的外键 |
| QSqlResult | 访问SQL数据库的抽象接口 |
| QSqlTableModel | 编辑一个单一数据表的数据模型类 |
QtSQL也是采用MVC设计思想来处理数据,主要类有:
(1) QSqlDatabase用于建立与数据库的连接,在建立连接时,加载数据库驱动的时候,可以设置数据库类型和数据库名字。除此之外,还可以通过接口设置数据库名字、主机名、用户名和密码,其主要接口说明见下表:
QSqlDatabase操作主要接口
| 函数名称 | 功能说明 |
|---|---|
| QSqlDatabase addDatabase(constQString &type,const QString &connectionName=QLatin1String(defaultConnection)) | 根据数据库类型,获取数据库对象并连接 |
| void setDatabaseName(const QString &name) | 设置连接数据库名字 |
| void setHostName(const QString &host) | 设置连接主机名字 |
| void sePassword(const QString &password) | 设置连接密码 |
| void setUserName(const QString &name) | 设置连接用户名 |
| bool open() | 打开连接的数据库 |
(2) QSqlQuery执行各种SQL语句的类,在打开成功连接的数据库,则可以通过QSqlQuery的接口来访问数据库中内容,其主要接口说明见下表
QSqlQuery操作主要接口
| 函数名称 | 功能说明 |
|---|---|
| QSqlQuery(const QString &query = QString(),QSqlDatabase db=QSqlDatabase()) | 得到访问数据库QSqlQuery对象 |
| bool exec(const QString &query) | 执行SQL语句访问数据库 |
| int at() const | 得到当前记录查询位置,第一条记录的为0 |
| bool first() | 检索结果中的第一条记录 |
| bool last() | 检索结果中的最后一条记录 |
| bool next() | 检索结果中的下一条记录 |
| QVariant value(const QString &name) const | 返回当前记录中名为name的字段的值 |
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
嵌入式
+关注
关注
5209文章
20629浏览量
336810 -
数据库
+关注
关注
7文章
4081浏览量
68524 -
MySQL
+关注
关注
1文章
930浏览量
29740
发布评论请先 登录
相关推荐
热点推荐
数据库系统是什么?数据库系统概念之数据库设计资料免费下载
什么是概念结构设计1.将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计2.概念结构是各种
发表于 09-07 14:34
•1次下载
如何使用PowerDesigner进行数据库静态结构设计?详细资料概述
把用户需求抽象为概念模型即为概念结构设计。
概念模型除了要求能反映客观世界并且易于理解外,还要求其易于向数据模型(如关系模型)转化。
概念模型独立于具体的数据库系统,是整个数据库设
发表于 09-13 17:05
•0次下载
数据库设计的七大知识点总结详细资料免费下载
本文档的主要内容详细介绍的是数据库设计的七大知识点总结包括了:1 数据库设计概述2 需求分析3 概念结构设计4 逻辑结构设计5
发表于 10-19 10:41
•0次下载
数据库学习入门资料之数据库的概念结构详细资料概述
什么是概念结构设计
将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计
概念结构是各种数据模型的共同基础,它比
发表于 10-25 16:29
•0次下载
数据库概念结构是如何设计的概念结构设计资料概述
本文档的主要内容详细介绍的是数据库概念结构是如何设计的概念结构设计资料概述主要内容包括了:1 概念结构2 概念
发表于 10-26 11:49
•22次下载
数据库的设计概念总结
本文档的主要内容详细介绍的是数据库的设计概念总结主要内容包括了:1.数据库设计概述,2.需求分析,3.概念结构设计,4.逻辑结构设计,5.
发表于 01-09 17:29
•13次下载
数据库设计开发案例教程之数据库设计的资料介绍
本文档的主要内容详细介绍的是数据库设计开发案例教程之数据库设计的资料介绍主要内容包括了:1 数据库设计概述,2 需求分析,3 概念结构设计,
发表于 01-11 11:20
•17次下载
Qt学习笔记之数据库结构设计1
数据库也是应用程序的重要部分,一个完整的应用程序几乎都包含数据库。
当前主流的数据库有DB2、MYSQL、OCI、ODBC、SQLITE、TDS、Oracle。
Sqlit
Qt学习笔记之数据库结构设计2
评论