更新数据库操作实例
//更新数据操作
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的字段的值 |
-
嵌入式
+关注
关注
5096文章
19208浏览量
308426 -
数据库
+关注
关注
7文章
3857浏览量
64808 -
MySQL
+关注
关注
1文章
831浏览量
26784
发布评论请先 登录
相关推荐
数据库系统是什么?数据库系统概念之数据库设计资料免费下载
![<b class='flag-5'>数据库</b>系统是什么?<b class='flag-5'>数据库</b>系统概念<b class='flag-5'>之</b><b class='flag-5'>数据库</b>设计资料免费下载](https://file.elecfans.com/web1/M00/63/2B/o4YBAFuSHbeAM4RcAACEYh_R_B4674.png)
如何使用PowerDesigner进行数据库静态结构设计?详细资料概述
![如何使用PowerDesigner进行<b class='flag-5'>数据库</b>静态<b class='flag-5'>结构设计</b>?详细资料概述](https://file.elecfans.com/web1/M00/63/F2/o4YBAFuaKoaAXBsrAAF31hRLKdQ387.png)
数据库设计的七大知识点总结详细资料免费下载
![<b class='flag-5'>数据库</b>设计的七大知识点总结详细资料免费下载](https://file.elecfans.com/web1/M00/68/AF/o4YBAFvJSraAY5LKAAElll_zQAQ598.png)
数据库学习入门资料之数据库的概念结构详细资料概述
![<b class='flag-5'>数据库</b><b class='flag-5'>学习</b>入门资料<b class='flag-5'>之</b><b class='flag-5'>数据库</b>的概念<b class='flag-5'>结构</b>详细资料概述](https://file.elecfans.com/web1/M00/69/2C/pIYBAFvRhBWACVm0AAB4a7P1L3E013.png)
数据库概念结构是如何设计的概念结构设计资料概述
![<b class='flag-5'>数据库</b>概念<b class='flag-5'>结构</b>是如何设计的概念<b class='flag-5'>结构设计</b>资料概述](https://file.elecfans.com/web1/M00/69/37/pIYBAFvSshOADBADAACF2aJJrfw747.png)
数据库的设计概念总结
![<b class='flag-5'>数据库</b>的设计概念总结](https://file.elecfans.com/web1/M00/81/A3/o4YBAFw1v1yAMmUZAAD6z3tK1rA443.png)
数据库设计开发案例教程之数据库设计的资料介绍
![<b class='flag-5'>数据库</b>设计开发案例教程之<b class='flag-5'>数据库</b>设计的资料介绍](https://file.elecfans.com/web1/M00/82/39/pIYBAFw4EO-AT-8JAAEaift3s7Y453.png)
Qt学习笔记之数据库结构设计1
![<b class='flag-5'>Qt</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b><b class='flag-5'>之</b><b class='flag-5'>数据库</b><b class='flag-5'>结构设计</b>1](https://file.elecfans.com/web2/M00/92/61/pYYBAGPu8w2AOEaUAACvV5wuQkE577.jpg)
评论