Qt怎么创建SQlite数据库
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,今天小编给大家分享一下Qt怎么创建SQlite数据库的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起
千家信息网最后更新 2025年11月06日Qt怎么创建SQlite数据库
今天小编给大家分享一下Qt怎么创建SQlite数据库的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
Qt 创建 SQlite数据库
void Widget::initDB(){ // 创建并打开数据库 QSqlDatabase database; database = QSqlDatabase::addDatabase("QSQLITE");// qDebug() << QApplication::applicationDirPath(); // 获取应用程序当前目录 database.setDatabaseName("test.sqlite3"); if(!database.open()) { qDebug() << "Error: Failed to connect database." << database.lastError(); } else { qDebug() << "Succeed to connect database."; } // 创建表格 QSqlQuery sql_query = database.exec("DROP TABLE student"); // 先清空一下表,可按需添加此句// sql_query.exec("DROP TABLE student"); // 创建表格student if(!sql_query.exec("create table student(UserId int primary key, UserName text, PassWord text)")) { qDebug() << "Error: Fail to create table." << sql_query.lastError(); } else { qDebug() << "Table created!"; } // 填充表 if(!sql_query.exec("INSERT INTO student VALUES(1, 'AppleCai', '23')")) { qDebug() << "Error: Fail to create table." << sql_query.lastError(); } else { qDebug() << "add one created!"; } // 批量填充表 QStringList names; names << "小A" << "小B" << "小C" << "小D" << "小E" << "小F" << "小G" << "小H" << "小I"; QStringList password; password << "12" << "23" << "34" << "45" << "56" << "67" << "78" << "89" << "90"; // 绑定关键字后才能进行操作 sql_query.prepare("INSERT INTO student (UserId, UserName, PassWord) " "VALUES (:UserId, :UserName, :PassWord)"); qint8 i = 0; foreach (QString name, names) // 从names表里获取每个名字 { sql_query.bindValue(":UserId", i+2); // 向绑定值里加入名字 sql_query.bindValue(":UserName", name); // 成绩 sql_query.bindValue(":PassWord", password[i]); // 班级 if(!sql_query.exec()) { qDebug() << "Error: Fail." << sql_query.lastError(); } i++; } // 读取sqlite studentInfo tmp; QVector infoVect; // 数据库缓存 sql_query.exec("SELECT * FROM student WHERE UserId >= 5 AND UserId <= 9;"); while (sql_query.next()) { tmp.UserId = sql_query.value(0).toInt(); tmp.UserName = sql_query.value(1).toString(); tmp.Password = sql_query.value(2).toString(); qDebug() << tmp.UserId << tmp.UserName << tmp.Password; infoVect.push_back(tmp); } qDebug("done"); // 更改表中数据 sql_query.prepare("UPDATE student SET PassWord = 'admin' WHERE UserName = 'AppleCai'"); if(!sql_query.exec()) { qDebug() << "Error: Fail." << sql_query.lastError(); } // 删除表中数据 sql_query.prepare("DELETE FROM student WHERE UserName = '小H'"); if(!sql_query.exec()) { qDebug() << "Error: Fail." << sql_query.lastError(); }} 以下是个人代码备份
这个代码是在qt写的,包含了数据库的创建和写入,但是我在项目准备直接在dataGrip把数据一键导入创建好数据库之后再用qt里面的sql语句读,所以就不需要这一部分了
#include "sqlitedatabase.h"SqliteDatabase::SqliteDatabase(){ qDebug() << "hhh";// initPickNameDB();}void SqliteDatabase::initPickNameDB(){ // 创建并打开数据库 QSqlDatabase database; database = QSqlDatabase::addDatabase("QSQLITE");// qDebug() << QApplication::applicationDirPath(); database.setDatabaseName(QApplication::applicationDirPath() + "/CONFIG/" + "PickNameDB.sqlite3"); if(!database.open()) { qDebug() << "Error: Failed to connect database." << database.lastError(); } else { qDebug() << "Succeed to connect database."; } // 创建表格 先清空一下表 QSqlQuery sql_query = database.exec("DROP TABLE department"); sql_query = database.exec("DROP TABLE person"); if(!sql_query.exec("create table department (Id int primary key not null, " "DeptName vchar(50) not null )")) { qDebug() << "Error: Fail to create department table." << sql_query.lastError(); } else { qDebug() << "Department table created!"; } if(!sql_query.exec("create table person (Id int primary key not null , " "DeptID integer not null , " "PerName vchar(50) not null, " "foreign key(DeptID) references department (Id))")) { qDebug() << "Error: Fail to create person table." << sql_query.lastError(); } // 填充表// sql_query.exec("insert into department (id, name) values (1, '办领导')");// sql_query.exec("insert into department (id, name) values (2, '综合处')");// sql_query.exec("insert into department (id, name) values (3, '政策法规处')");// sql_query.exec("insert into department (id, name) values (4, '机构改革处')");// sql_query.exec("insert into department (id, name) values (5, '党群政法行政机构编制管理处')");// sql_query.exec("insert into department (id, name) values (6, '政府行政机构编制管理处')");// sql_query.exec("insert into department (id, name) values (7, '市县行政机构编制管理处')");// sql_query.exec("insert into department (id, name) values (8, '事业机构编制管理处')");// sql_query.exec("insert into department (id, name) values (9, '事业单位登记管理处')");// sql_query.exec("insert into department (id, name) values (10, '机构编制监督检查处')");// sql_query.exec("insert into department (id, name) values (11, '人事处')");// sql_query.exec("insert into department (id, name) values (12, '机关党委')");// sql_query.exec("insert into department (id, name) values (13, '省机构编制电子政务中心')");// sql_query.exec("insert into department (id, name) values (14, '省机构编制研究中心')"); // 批量填充表 QStringList deptNames; deptNames << "办领导" << "综合处" << "政策法规处" << "机构改革处" << "党群政法行政机构编制管理处" << "政府行政机构编制管理处" << "市县行政机构编制管理处" << "事业机构编制管理处" << "事业单位登记管理处" << "机构编制监督检查处" << "人事处" << "机关党委" << "省机构编制电子政务中心" << "省机构编制研究中心"; // 绑定关键字后才能进行操作 sql_query.prepare("INSERT INTO department (Id, DeptName) " "VALUES (:Id, :DeptName)"); qint8 i = 0; foreach (QString deptName, deptNames) { sql_query.bindValue(":Id", i + 1); sql_query.bindValue(":DeptName", deptName); if(!sql_query.exec()) { qDebug() << "Error: Fail." << sql_query.lastError(); } i++; } // 读取sqlite department dept; QVector tmpDept; // 数据库缓存 sql_query.exec("SELECT * FROM ");} 以上就是"Qt怎么创建SQlite数据库"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
机构
机构编制
编制
数据
管理处
管理
数据库
事业
知识
篇文章
表格
事业单位
人事
代码
党委
关键
关键字
内容
单位
名字
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库和信息库是一个意思吗
软件开发实训生有哪些工作
sql数据库转换成acc文件
网络安全就是信息安全吗
直播的服务器软件
数据库的安全等级
信阳货币量化交易软件开发报价
服务器管理工具web控制
金银加工网络技术培训
全国网络安全日宣传讲话
hp服务器如何与存储连接
一台网络安全设备的域名是什么
圣和是网络安全宫缩的
创新大赛网络安全的视频
数据库dbs概念
四平数据库置疑修复培训
三级网络技术获证条件
如何保证网络安全
云帮手服务器管理工具好用吗
网络安全许可证一年有效期
数据库二期末考试
内资网络安全咨询
系统修改是侵害网络安全吗
服务器登录显示正在安装软件
java 哪个数据库
新零售系统软件开发
新北洋西安分公司软件开发怎么样
上海品牌软件开发一体化
广安网络安全事件报告
南充展厅多媒体软件开发