温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Qt怎么创建SQlite数据库

发布时间:2022-05-19 11:20:11 来源:亿速云 阅读:314 作者:iii 栏目:开发技术

今天小编给大家分享一下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数据库”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI