QT中使用Sqlite

2023-11-20

QT中使用Sqlite

首先要在.pro中引用sql,引用方法:

  • 新添加语句

    QT += sql

  • 在原来的基础上追加

    QT += core gui sql

然后再widget.h中添加对sql头文件的引用:

#include <QSqlDatabase> //创建数据库头文件
#include <QSqlQuery>  //操作执行SQL语句
#include <QString>   //字符串操作

举例

  • 定义一个QSqlDatabase对象,并添加数据库:
QSqlDatabase db;
db = QSqlDatabase::addDatabase("QSQLITE");

QSqlDatabase支持的数据库如下:

QDB2 BM DB2
QIBASE Borland InterBase Driver
QMYSQL MySQL Driver
QOCI Oracle Call Interface Driver
QODBC ODBC Driver (includes Microsoft SQL Server)
QPSQL PostgreSQL Driver
QSQLITE SQLite version 3 or above
QSQLITE2 SQLite version 2
QTDS Sybase Adaptive Server
  • 创建数据库,设置数据库名

    db.setDatabaseName("test.db");

  • 连接数据库

    QString s = db.connectionName();

  • 打开数据库

    db.open();
    此步操作后会在编译的目录下生成一个test.db文件。
    在这里插入图片描述

  • 创建sql对象,通过exec()来执行sql语句.

      QSqlQuery sql;  //在数据库链接之后
      sql.exec();
    

    也可以在前面定义QSqlQuery的指针数据,在数据库链接之后实例化

      QSqlQuery *psql;
      psql = new QSqlQuery();
      psql->exec();
    

    本例中使用后一种方法。

  • 创建table

    psql->exec("create table user(name,age)");

  • 插入数据

    psql->exec("insert into user(name,age) values('zhangsan',23)");
    运行结果如下图:

在这里插入图片描述

注意:
QT操作sqlite,如果数据库或者表已经存在,则不会再次创建,而是以已打开的形式追加操作。

如上程序再次执行一遍,结果如下:
在这里插入图片描述

使用命令查看方式如下:
在这里插入图片描述

完整代码:

#include <QWidget>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QString>
namespace Ui {
	class Widget;
}

class Widget : public QWidget
{
	Q_OBJECT

	public:
		explicit Widget(QWidget *parent = nullptr);
		~Widget();
	
	private:
		Ui::Widget *ui;
		QSqlDatabase db;
		QSqlQuery *psql;
};
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
    ui->setupUi(this);
    db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("test.db"); //创建数据库,设置数据库名
    QString s = db.connectionName();
    db.open();
    psql = new QSqlQuery();
    psql->exec("create table user(name,age)");
    psql->exec("insert into user(name,age) values('zhangsan',23)");
}

Widget::~Widget()
{
	delete ui;
	delete psql;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT中使用Sqlite 的相关文章

  • Postgresql 串行错误自动增量

    我在 postgresql 上遇到问题 我认为 postgresql 中有一个错误 我错误地实现了一些东西 有一个表包括colmn1 primary key colmn2 unique colmn3 插入一行后 如果我尝试使用现有的另一次插
  • SQL命令文本到DataSet的直接方法

    如果我有 sql 命令 获取数据集的最直接途径是什么 string sqlCommand SELECT FROM TABLE string connectionString blahblah DataSet GetDataSet sqlCo
  • sql server 2008 对 exec 语句的限制

    我只需要仔细检查 t sql 中的 EXEC 命令是否有字符限制 如果我有一个带有 varchar max 的变量并使用 EXEC 执行命令 你认为这样可以吗 thanks 应该没问题 根据这篇 MSDN 文章 http msdn micr
  • sql join 告诉我 ID 是否存在于其他表中

    我有 2 张桌子 A B ID FKID 1 3 2 3 3 4 4 4 我需要一个 select 语句 它显示 A 的所有内容 其中一个字段告诉我表 B 是否有任何与该 ID 匹配的 id Desired Result ID hasB 1
  • 使用转义换行符和回车符取消转义字符串

    我正在尝试编写一个 PLPGSQL 函数来混淆 审查 编辑文本 Obfuscate a body of text by replacing lowercase letters and numbers with symbols CREATE
  • 将图像列保存到 SQL Server 2000 中的文件

    我在 SQL Server 2000 中有一个包含图像列的表 我需要将图像数据保存到文件系统上的文件中 在 SQL Server 2005 中 我可以使用 ADODB Stream 对象进行文件 I O 但这在 SQL Server 200
  • SQL 选择 n 到 m 关系

    我有一个n to m之间的关系Author and Book 表作者 ID Name 1 Follett 2 Rowling 3 Martin 桌书 ID Title Category 1 A Dance with Dragons Fant
  • Magento 设置脚本中的 ALTER TABLE 不使用 SQL

    乔纳森 戴 https stackoverflow com users 336905 jonathan day says 更新不应采用以下形式 SQL命令 我没遇到过 任何 DDL 或 DML 语句不能 通过 Magento 的配置执行 结
  • Oracle 按月滚动或运行总计

    目标 每个月末所有报表的滚动 运行总计 Code select TRUNC ACTHX STMT HX STMT DATE MM AS MNTH COUNT ACTHX INVOICE as STMTS from ACTHX group b
  • REGEXP_REPLACE - 仅当包含在 () 中时才从字符串中删除逗号

    我在 oracle 论坛网站找到了一个例子 输入字符串 a b c x y z a xx yy zz x WITH t AS SELECT a b c x y z a xx yy zz x col1 FROM dual SELECT t c
  • Qt:如何连接到 SQLite?

    我安装了 SQLite3 解压到 c sqlite 创建了一个数据库 c sqlite mzsales 现在我试图在 QTableView 中显示其内容 QSqlDatabase db QSqlDatabase addDatabase QS
  • SQL Server 2012:有条件地增加计数器用户 ROW_NUMBER()

    我正在尝试申请ROW NUMBER 根据特定条件增加计数器 我的数据如下所示 目标计数器是Prep column id DSR PrepIndicator Prep 1662835 1 1 1 1662835 14 2 2 1662835
  • 我应该使用平面表还是标准化数据库?

    我目前正在开发一个使用 MySQL 数据库作为后端的 Web 应用程序 在继续下一步之前 我需要知道什么更适合我的情况 简而言之 在这个应用程序中 用户将能够使用任何数字字段 他们决定 构建自己的表单 现在我将其全部存储在通过外键链接的几个
  • 如何计算 Postgres 上图表中所有连接的节点(行)?

    我的桌子有account id and device id One account id可以有多个device ids 反之亦然 我正在尝试计算每个连接的多对多关系的深度 Ex account id device id 1 10 1 11
  • 自动提取数据 - Oracle SQL Developer

    我通过 SQL Developer 连接到 Oracle 数据库 我想编写一个返回每月数据集的查询 然后将该数据提取到分隔文本文件中 我知道如何做到这一点就好了 我想知道是否有一种方法可以编写一个脚本来运行查询并在一年内逐月提取数据 这样我
  • 如何引用下一行的数据?

    我正在 PostgreSQL 9 2 中编写一个函数 对于股票价格和日期的表 我想计算每个条目较前一天的百分比变化 对于最早一天的数据 不会有前一天 因此该条目可以简单地为 Nil 我知道WITH声明可能不应该高于IF陈述 到目前为止 这就
  • TSQL - 生成文字浮点值

    我理解比较浮点数时遇到的许多问题 并对它们在这种情况下的使用感到遗憾 但我不是表格作者 只有一个小障碍需要克服 有人决定使用浮点数 就像您期望使用 GUID 一样 我需要检索具有特定浮点值的所有记录 sp help MyTable Colu
  • 在 Mysql 上使用 EntityManager JPA 运行脚本

    我正在尝试运行脚本 sql 文件 但由于我尝试了多种方法 因此出现多个错误 这是我的主要 sql 脚本 INSERT INTO Unity VALUES 11 paq 0 2013 04 15 11 41 37 Admin Paquete
  • 标量子查询包含多行

    我正在使用 H2 数据库并想要移动一些数据 为此 我创建了以下查询 UPDATE CUSTOMER SET EMAIL SELECT service EMAIL FROM CUSTOMER SERVICE AS service INNER
  • Qt - 设置不可编辑的QComboBox的显示文本

    我想将 QComboBox 的文本设置为某些自定义文本 不在 QComboBox 的列表中 而不将此文本添加为 QComboBox 的项目 此行为可以在可编辑的 QComboBox 上实现QComboBox setEditText cons

随机推荐

  • 【Python】逆向爬虫-----常见的加密方法

    一 MD5加密 MD5加密是一种被广泛使用的线性散列算法 可以产生出一个128位 16字节 的散列值 hash value 用于确保信息传输完整的一致性 且MD5加密之后产生的是一个固定长度 32位或16位 的数据 若要破解MD5加密 需要
  • C++程序的基本组成简介

    C 程序的基本组成简介 C 程序的基本组成 这个C 程序例子 由一个程序单位 程序文件 注 组成 这是一个简单例子未使用类 注 其中包括 1 头文件 可以认为头文件是你在调用函数时的一个桥梁 格式为 include 引用文件名 c 的程序是
  • set容器

    恭喜主教大人完成了自己的目标 set 容器 set容器基本概念 简介 所有元素都会在插入时所有元素都会在插入时自动被排序 自动去重 可重复插不报错但是去重了 默认从小到大排 本质 set multiset属于关联式容器 底层结构是用二叉树实
  • 最新ChatGPT GPT-4 文本生成技术详解(附ipynb与python源码及视频讲解)——开源DataWhale发布入门ChatGPT技术新手从0到1必备使用指南手册(三)

    目录 前言 最新ChatGPT GPT 4 文本生成技术详解 1 引言 2 文本摘要任务 2 1 什么是文本摘要 2 2 常见的文本摘要技术 2 3 基于OpenAI接口的文本摘要实验 2 3 1 简单上手版 调用预训练模型 2 3 2 进
  • 面向对象的单片机编程

    1 在看别人单片机程序时 你也许是奔溃的 因为全局变量满天飞 不知道哪个在哪用了 哪个表示什么 而且编写极其不规范 2 在自己写单片机程序时 也许你也是奔溃的 总感觉重新开启一个项目 之前的写过相似的代码也无法使用 得重新敲 代码重用度不高
  • 关系数据库(数据库原理)

    目录 一 关系数据结构 二 关系的完整性 三 关系运算 四 关系的规范化 一 关系数据结构 1 关系的定义和性质 1 关系的数学定义 域 一组有相同数据类型的值得集合 笛卡尔积 设任意的N个域D1 D2 Dn 定义D1 D2 Dn的笛卡尔积
  • Android热更新之AndFix就是个大坑

    最近一两年Android插件化热更新此起彼伏 也许Android的开发者也希望有朝一日 来颠覆频繁的去更新版本 而像web前端一样 更改了代码立马生效的效果 确实 如果已经上线的版本 突然有了bug 按照现有模式 开发者不得不去解决bug
  • 类中的getInstance()方法的用法和作用

    class rmt dbutil public public static rmt dbutil getInstance if instance NULL instance new rmt dbutil return instance bo
  • quill编辑器使用

    官方git https github com quilljs quill 官方文档 https quilljs com 中文文档 https kang bing kui gitbook io quill 编辑器是个正经编辑器 就是文档太不正
  • android studio更新到3.6以上后布局文件不能切换到xml编辑器?那就点进来吧

    android studio更新到3 6以上后布局文件不能切换到xml编辑器 只能拖拽写UI了 怎么可能 看下面截图 打开布局文件后 默认是到预览界面的 右上角的三个按钮就是用来切换视图的 自己点击试试就知道啦
  • 正则校验手机号

    正则表达式可以用来校验手机号码的合法性 如果你想使用正则表达式来校验中国大陆的手机号码 可以使用如下的正则表达式 1 3 9 d 9 这个正则表达式可以匹配所有 13 到 19 开头的 11 位数字 即所有中国大陆的手机号码 例如 如果你想
  • 全网最全的人类图解析(上)——九大能量中心与64道闸门

    以下内容来源皆来自 亚洲人类图学院 获得自己的人类图 传送门 文章目录 简介 一 九大能量中心简介 1 头脑中心 Head Center 头脑中心的主题 灵感 2 逻辑中心 Ajna Center 逻辑中心的主题 概念化 3 喉咙中心 Th
  • CSDN平台上怎么样才能赚钱?

    CSDN平台上有多种方式可以赚钱 以下是其中几种常见的 1 写作赚钱 CSDN平台鼓励用户积极创作原创技术博客 通过博客的阅读量和转发量来获取广告收益 用户还可以发表付费文章或参与付费专栏 在文章的阅读量和付费订阅量上获得收入 2 交流赚钱
  • java使用visio画类图,【什么是类图使用类图的方法】使用visio画类图

    类图是显示了模型的静态结构 特别是模型中存在的类 类的内部结构以及它们与其他类的关系等 那么你对类图了解多少呢 以下是由小编整理关于什么是类图的内容 希望大家喜欢 类图的概述 类图 Class diagram 由许多 静态 说明性的模型元素
  • 【数据结构--二叉树】平衡二叉树

    题目描述 代码实现 Definition for a binary tree node struct TreeNode int val struct TreeNode left struct TreeNode right int TreeH
  • Could not proxy request /captchaImage from localhost to http://localhost:8080/.

    项目场景 项目场景 配置若依环境前端通过 run npm dev 启动报500 问题描述 根据报错分析 无法将请求 路径 从本地主机代理到http 本地主机 8080 原因分析 我们可以看到前端配置的端口号80 地址就是本机没有问题 排除前
  • 变分模态分解(VMD)运算步骤及源码解读

    1 简述 VMD的目标是将实值输入信号 f f f分解为离散数量的子信号 模态 u k u k uk 我们先假设每个模态在一个中心频率
  • Axure谷歌Chrome浏览器插件安装教程

    1 引言 经常看到这样的问题 1 我用Axure做的原型怎么不能用谷歌浏览器查看 2 到哪里下载Axure谷歌浏览器插件 3 Axure谷歌浏览器插件下载下来怎么安装 其实这些问题百度一下都能找到答案 不过有些答案对于新手来说比较麻烦 就拿
  • c语言函数中调用的参数太多

    c语言函数中调用的参数太多问题 问题展示 问题分析 解决方法 问题展示 图中是我遇到的情况 问题分析 大家可以看到 在函数中 指针变量和后面的整数变量都成了灰色 解决方法 图中问题只需将中文逗号 改为英文逗号即可 一定要检查双引号或者逗号是
  • QT中使用Sqlite

    QT中使用Sqlite 首先要在 pro中引用sql 引用方法 新添加语句 QT sql 在原来的基础上追加 QT core gui sql 然后再widget h中添加对sql头文件的引用 include