首页 > 数据库 >Qt使用Sqlite数据库-1(入门级)

Qt使用Sqlite数据库-1(入门级)

时间:2024-04-09 19:34:21浏览次数:21  
标签:Sqlite Qt database 数据库 sqlquery 入门级 名称 sql Age

1.在Pro文件中加入sql资源

QT += core gui sql

        这是第一步也是最重要的一步,没有加入sql资源。在包含数据库文件时会报错找不到该文件。

2.创建链接及打开数据库

//包含数据库头文件
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
//创建链接,打开数据库
void initDataBase()
{
    QSqlDatabase m_database;
    m_database = QSqlDatabase::addDatabase("QSQLITE");//添加sql驱动
    m_database.setDatabaseName("./db/sqlite.db");//创建数据库文件。sqlite为自己定义的数据库名称
    if(m_database.open()){//打开数据库
        qDebug()<<"数据库打开成功";
    }else{
        qDebug()<<"数据库打开失败";
    }
}

3.创建数据库表

        可以把sqlite.db看成是一个excel文档,数据库表就相当于这个excel文档里的一个sheet页。

void creatDbTable()
{
    QString creatSql;
    //拼接sql语句
    creatSql="create table Person_Table (Name varchar,Age int)";//Person_Table是自己定义的表名。Name和Age是表里包含的信息(可以理解为列,每个人是一行)。varchar和int是对应的数据类型
    QSqlQuery sqlquery(m_database);
    bool ret=sqlquery.exec(creatSql);//执行sql语句
    if(true==ret){
        qDebug()<<"数据库表格创建成功";
    }
    else if(false==ret){
        qDebug()<<"数据库表格创建失败";
    }
}

        创建表的具体数据库语句格式为:CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据类型, 列名称3 数据类型, .... )

4.插入数据

bool writeData()
{
    QString sqlStr;
    sqlStr="insert into Person_Table (Name ,Age) values('张三','25')";
    QSqlQuery sqlquery(m_database);
    if(sqlquery.exec(sqlStr)){
        return true;
    }
    else{
        return false;
    }
}

        插入数据的数据库语句格式为:INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

5.读取数据

void readData()
{
    QString sqlStr;
    sqlStr="select Age from Person_Table where Name = '张三'";//读取名字为张三的年龄
    QSqlQuery sqlquery(m_database);
    bool ret=sqlquery.exec(sqlLanguage);
    if(ret){
        while (sqlquery.next()){
           int getAge=sqlquery.value(0).toInt();//参数0为读取数据对应列的索引。比如select Age,Name那么0就是年龄  1就是名字....
        }
    }
    else{
    }
}

        读取数据的数据库语句格式为:SELECT 列名称 FROM 表名称 WHERE 列 = 值。注:需读取多个列时列名称间用逗号分隔。例:SELECT 列名称1,列名称2 FROM 表名称 WHERE 列 = 值


标签:Sqlite,Qt,database,数据库,sqlquery,入门级,名称,sql,Age
From: https://blog.csdn.net/weixin_52739241/article/details/137562812

相关文章

  • Qt通讯录管理系统
        在git上面找的一个操作文件的qt通讯录管理系统,尝试将它复刻了一下.    成果展示    分两个txt文件存储,一个是手机联系人,一个是电话卡联系人,主要功能就是增删改查,主要使用的是OOP的编程思想.    实现过程    界面布局 ......
  • Qt 项目编译流程总结
    通过VS来开发Qt项目的过程中,整个Qt项目的编译需要如下几个过程:Uic---->Rcc---->Moc---->预处理----->编译----->汇编----->链接对比普通的C++项目,Qt多了Uic---->Rcc---->Moc这三步。现在对QT项目所多出的三个编译过程进行分析:一、Uic:QtUserInte......
  • Qt加Opencv实现 梯度矫正 功能
    废话:有时候我们是从物品的斜上方拍摄的图片,看起来不直观,需要把视角拉正,这样的一个操作就叫做梯度矫正,需要用到的技术是Opencv的透视变换。这个只是一个简单的演示demo,如果完善一下,比如物品检测,可以应用更多的场景,比如常见的:文件、资料上传,软管摄像头的应用等,怎么说也是一个......
  • MQTT基础
    1、MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议2、MQTT历史:MQTT协议最初版本是在1999年建立的。他们当时正在开发一个利用卫星通讯监控输油管道的项目。为了实现这个项目要求,他们需要开发一种用于嵌入式设备的通讯协议,这种通讯协议必须满足以下条件:易于实现数......
  • MQTT用python写的收消息例子
    在MQTT官网给的sub_wss.py例子中修改改写自己的用户名和密码BROKER='*******.ala.cn-hangzhou.emqxsl.cn'//改成自己的连接地址USERNAME='**************'//用户名PASSWORD='*************'//密码注意这句是改使用v1回调API(与旧版本的库一起使用)。原......
  • 【QT教程】QT6 QML编程
    QT6QML编程使用AI技术辅助生成QT界面美化视频课程QT性能优化视频课程QT原理与源码分析视频课程QTQMLC++扩展开发视频课程免费QT视频课程您可以看免费1000+个QT技术视频免费QT视频课程QT统计图和QT数据可视化视频免费看免费QT视频课程QT性能优化视频免费看免......
  • qt实现实时抓取串口数据,并对数据做解密处理
    效果:       1.实时抓取串口数据,并对串口数据做解密,解密后显示在QTextEdit上。       2.对显示的内容做特殊关键字标记处理,比如对出现的Error关键字标红               高亮另一个版本       3.对显示的明文进行查询,类似编辑文件中......
  • Qt中显示hex数据的控件
    效果类似QTextEdit,但是显示十六进制的数据,比如用于显示抓取串口或者bin文件的数据等等chunks.h#ifndefCHUNKS_H#defineCHUNKS_H/**\conddocNever*//*!TheChunksclassisthestoragebackendforQHexEdit.**WhenQHexEditloadsdata,Chunksaccessthe......
  • SQLite数据库文件格式(十五)
     返回:SQLite—系列文章目录   上一篇:SQLite4.9的虚拟表机制(十四)下一篇:SQLite—系列文章目录   ► 目录本文档描述和定义磁盘上的数据库文件自SQLite以来所有版本使用的格式版本3.0.0(2004-06-18).1. 数据库文件SQLite数据库的完整状态通常是包......
  • C++与Qt中回调函数的两种实现方法
    一.回调函数介绍1.概念回调函数是一种在程序运行期间通过函数指针调用的函数,它通常用于实现事件驱动、异步通信、消息传递等功能。在回调函数中,被调用的函数通常称为回调函数(CallbackFunction),而调用回调函数的函数通常称为回调函数容器(CallbackContainer)。回调函数容器可......