Qt怎么创建SQlite数据库
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,今天小编给大家分享一下Qt怎么创建SQlite数据库的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起
千家信息网最后更新 2025年01月16日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安全错误
数据库的锁怎样保障安全
华购网络技术
数据库安全控制设计
智慧园区软件开发合同
蒲公英互联网科技
云雾泽宝可梦服务器
陕西非公党性体检软件开发
拉萨网络安全技术培训简单易学
怎么把数据库的内容删除
1809服务器
数据库技术及access
软件开发收入的确认原则
药盟互联网科技有限公司总经理
vb如何连接数据库
乐豆商城软件开发
四川企业软件开发
某承包商与软件开发公司
服务器主机运行时有异常
花生壳 web服务器
保定廊坊oa管理系统网络技术
软件开发费用估算依据
尚米网络技术有限公司前台
天津 网络安全进课堂
拉萨网络安全技术培训简单易学
非对称加密服务器安全
网络编程与数据库编程注意事项
爆点软件开发
远程服务器拒绝访问路由器登不了
geo数据库怎么用
软件开发要花多少钱
网络技术论坛 知乎