当前位置: 首页 > news >正文

QT+SQLite数据库配置和使用

一、简介
1.1 SQLite(sql)是一款开源轻量级的数据库软件,不需要server,可以集成在其他软件中,非常适合嵌入式系统。Qt5以上版本可以直接使用SQLite(Qt自带驱动)。
二、下载和配置
2.1 SQLite下载官网下载链接
2.2 根据计算机的配置,选择所需项目是64位还是32位下载对应的压缩包
在这里插入图片描述
2.3 安装
在系统盘(C盘)建一个名称为“sqlite”的文件夹,把上面下载的两个压缩包解压到这个sqlite文件夹中
在这里插入图片描述

2.4 配置计算机环境变量
右键此电脑,点击“属性”,打开“高级系统设置。
在这里插入图片描述
2.5.验证安装是否成功
在这里插入图片描述
三、应用数据库主要是增删查改,下面是相关函数代码
3.1 首先包含相关库文件

#include <QtWidgets/QWidget>
#include <sstream>
#include <QString>
#include <QDomDocument>
#include <QTextStream>
#include <QFile>
#include <QDir>
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
#include <QMessageBox>
#include <vector>

3.2 函数

#pragma region 创建并连接SQLite数据库
//创建并连接SQLite数据库
bool SQLite::CreateConnectDB(QString sql_name, QSqlDatabase &database)
{try{//建立并打开数据库database = QSqlDatabase::addDatabase("QSQLITE");database.setDatabaseName(sql_name);bool bol_sql_open = database.open();if (bol_sql_open == false){QMessageBox::critical(NULL, "Prompt", database.lastError().text());return false;}else{return true;}}catch (...){return false;}
}
#pragma endregion#pragma region 创建表格
//创建表格
bool SQLite::CreateTable(QString table_name)
{try{QSqlQuery sql_query;QString sql = "create table " + table_name + "(USERNAME text, PASSWORD text)";if (!sql_query.exec(sql)){QMessageBox::critical(NULL, "Prompt", sql_query.lastError().text());return false;}else{return true;}}catch (...){return false;}
}
#pragma endregion#pragma region 插入数据
//插入数据
bool SQLite::InsertData(QString table_name, QString user_name, QString password)
{try{QSqlQuery sql_query;QString sql = "insert into " + table_name + " values (?, ?)";sql_query.prepare(sql);sql_query.addBindValue(user_name);sql_query.addBindValue(password);if (!sql_query.exec()){QMessageBox::critical(NULL, "Prompt", sql_query.lastError().text());return false;}else{return true;}}catch (...){return false;}
}
#pragma endregion#pragma region 修改数据
//修改数据
bool SQLite::ModifyData(QString user_name, QString password)
{try{QSqlQuery sql_query;QString sql = "update LoginTable set PASSWORD = :PASSWORD where USERNAME = :USERNAME";sql_query.prepare(sql);sql_query.bindValue(":USERNAME", user_name);sql_query.bindValue(":PASSWORD", password);if (!sql_query.exec()){QMessageBox::critical(NULL, "Prompt", sql_query.lastError().text());return false;}else{return true;}}catch (...){return false;}
}
#pragma endregion#pragma region 查询数据
//查询数据
bool SQLite::QueryData(QString user_name, QString &password)
{try{//eg: "select * from LoginTable where USERNAME == 'user0';"QSqlQuery sql_query("select * from LoginTable where USERNAME == '" + user_name + "';");if (!sql_query.exec()){QMessageBox::critical(NULL, "Prompt", sql_query.lastError().text());return false;}else{while (sql_query.next()){password = sql_query.value(1).toString();}return true;}}catch (...){return false;}
}
#pragma endregion#pragma region 删除数据
//删除数据
bool SQLite::DeleteData(QString user_name)
{try{QSqlQuery sql_query("delete from LoginTable where USERNAME == '" + user_name + "';");if (!sql_query.exec()){QMessageBox::critical(NULL, "Prompt", sql_query.lastError().text());return false;}else{return true;}}catch (...){return false;}
}
#pragma endregion#pragma region 删除表格
//删除表格
bool SQLite::DeleteTable(QString table_name)
{try{QSqlQuery sql_query;sql_query.exec("drop table " + table_name);if (sql_query.exec()){QMessageBox::critical(NULL, "Prompt", sql_query.lastError().text());return false;}else{return true;}}catch (...){return false;}
}
#pragma endregion#pragma region 关闭数据库
//关闭数据库
bool SQLite::CloseDB( QSqlDatabase database)
{try{database.close();return true;}catch (...){return false;}
}
#pragma endregion
http://www.lryc.cn/news/217085.html

相关文章:

  • 若依分离版——配置多数据源(mysql和oracle),实现一个方法操作多个数据源
  • Seata入门系列【19】分布式事务之CAP、BASE理论
  • 界面控件DevExpress WPF Gauge组件 - 轻松实现个性化商业仪表盘
  • 算法题:870. 优势洗牌
  • [架构之路-252/创业之路-83]:目标系统 - 纵向分层 - 企业信息化的呈现形态:常见企业信息化软件系统 - 企业应用信息系统集成
  • MFC发送http https以及json解析
  • UE5加载websocket模块为空
  • 学习 Python 数据可视化,如何快速入门?
  • XUbuntu22.04之simplenote支持的Markdown语法总结(一百九十一)
  • JAVA深化篇_26——Apache commons-io工具包的使用
  • centos 7 kafka2.6单机安装及动态认证SASL SCRAM配置
  • TrafficWatch 数据包嗅探器工具
  • MySQL Binlog实战应用之一
  • 【MySQL】MVCC机制(undo log,read view)
  • gma 2 教程(三)坐标参考系统:3.投影方法
  • 蓝桥杯每日一题2023.11.2
  • Leetcode67二进制求和
  • 线性代数 第五章 特征值与特征向量
  • Python嵌入式数据库 / 轻量级数据库 / 小型数据库介绍(SQLite、Pandas DataFrame、TinyDB)(python数据库)
  • USB PD v1.0快速充电通信原理
  • 【华为】路由器以PPPoE拨号接入广域网
  • Linux内核分析(一)--内核架构和子系统
  • 【PyQt学习篇 · ⑨】:QWidget -控件交互
  • 新版本IntelliJ IDEA(如2023)中运行Spring Boot找不到VM options进行端口的修改的问题解决
  • Swift语言配合HTTP写的一个爬虫程序
  • 【lvgl】linux开发板搭建环境
  • C之(10)CMocka-单元测试框架使用
  • 如何在idea中使用maven搭建tomcat环境
  • 单点登录
  • 大数据(十):数据可视化(二)