Qt怎么创建SQlite数据库
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,今天小编给大家分享一下Qt怎么创建SQlite数据库的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起
千家信息网最后更新 2025年02月23日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; QVectorinfoVect; // 数据库缓存 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; QVectortmpDept; // 数据库缓存 sql_query.exec("SELECT * FROM ");}
以上就是"Qt怎么创建SQlite数据库"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
机构
机构编制
编制
数据
管理处
管理
数据库
事业
知识
篇文章
表格
事业单位
人事
代码
党委
关键
关键字
内容
单位
名字
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
东城区技术软件开发口碑推荐
网络安全常驻心PPT
磁阵和存储服务器区别
东莞市袋鼠直聘网络技术公司
网站服务器登陆
c 软件开发讲解
vac 安全服务器
济宁销售软件开发公司电话
软件开发工程师多大年龄不能做
2020年大话西游2开服务器
网络技术保护个人隐私
社工网络安全活动宣传
2021 上海网络安全博览会
修服务器d工资多少
质量安全追溯数据库应用论文
oracle 数据库技术
云相框服务器
oralce数据库入门教程
数据库老是死锁
红外技术属于无线网络技术吗
网络安全方向标准对照表
网络技术分析研究
数据库安全管理语言
蚂蚁矿机怎么用代理服务器
全国计算机三级教程网络技术
厦门亿联网络技术客服
请将数据库按照内容
试题题库软件开发
网络技术与电商的意义
互程网络技术有限公司招聘