文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Qt怎么创建SQlite数据库

2023-06-30 15:23

关注

今天小编给大家分享一下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<studentInfo> 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怎么创建SQlite数据库

以下是个人代码备份

这个代码是在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<department> tmpDept; // 数据库缓存    sql_query.exec("SELECT * FROM ");}

以上就是“Qt怎么创建SQlite数据库”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯