内容简介:参考视频:说明:本文对在Qt中操作SQLite做简要说明。SQLite:SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。具体的操作命令可参考:
1 简介
参考视频: https://www.bilibili.com/video/BV1XW411x7NU?p=88
说明:本文对在Qt中操作 SQLite 做简要说明。
SQLite:SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。具体的操作命令可参考: https://www.runoob.com/sqlite/sqlite-tutorial.html
在Qt中操作SQLite不需要我们单独先安装它,可以直接使用。
2 测试及说明
语法就不介绍了,这里说明功能:创建一个info.db数据库,插入一些数据,然后遍历输出。
代码步骤说明:
(1)添加sqlite数据库
1 db = QSqlDatabase::addDatabase("QSQLITE");
(2)创建数据库
语法和之前操作 MySql 一样:
1 QSqlQuery query;
2 query.exec("create table student(id int primary key, name varchar(255), age int, score int);");
(3)批量插入条目
1 //批量插入:odbc风格
2 //预处理语句
3 query.prepare("insert into student(name, age, score) values(?, ?, ?);");
4 // 给字段设置内容
5 QVariantList nameList;
6 nameList << "xiaoming" << "xiaokong" << "xiaojiang";
7 QVariantList ageList;
8 ageList << 22 << 21 << 24;
9 QVariantList scoreList;
10 scoreList << 89 << 99 << 78;
11 //给字段绑定相应的值,必须按顺序绑定
12 query.addBindValue(nameList);
13 query.addBindValue(ageList);
14 query.addBindValue(scoreList);
15 //执行预处理命令
16 query.execBatch();
(4)遍历输出
1 query.exec("select * from student");
2 while (true == query.next()) { //一行一行遍历
3 //取出当前行的内容,以列为单位
4 qDebug() << query.value(0).toInt() //取第一列
5 << query.value(1).toString() //取第二列
6 << query.value("age").toInt()
7 << query.value("score").toInt();
8 }
完整代码:
1 #include "widget.h"
2 #include "ui_widget.h"
3 #include <QDebug>
4 #include <QSqlDatabase>
5 #include <QMessageBox>
6 #include <QSqlError>
7 #include <QSqlQuery>
8
9
10 Widget::Widget(QWidget *parent) :
11 QWidget(parent),
12 ui(new Ui::Widget)
13 {
14 ui->setupUi(this);
15
16 //打印qt支持的数据库驱动
17 qDebug() << QSqlDatabase::drivers();
18
19 //添加sqlite数据库
20 db = QSqlDatabase::addDatabase("QSQLITE");
21 //设置数据库
22 db.setDatabaseName("../info.db");
23 //打开数据库
24 if (db.open() == false) {
25 QMessageBox::warning(this, "错误", db.lastError().text());
26 return;
27 }
28 //操作sql语句
29 QSqlQuery query;
30 query.exec("create table student(id int primary key, name varchar(255), age int, score int);");
31 //批量插入:odbc风格
32 //预处理语句
33 query.prepare("insert into student(name, age, score) values(?, ?, ?);");
34 // 给字段设置内容
35 QVariantList nameList;
36 nameList << "xiaoming" << "xiaokong" << "xiaojiang";
37 QVariantList ageList;
38 ageList << 22 << 21 << 24;
39 QVariantList scoreList;
40 scoreList << 89 << 99 << 78;
41 //给字段绑定相应的值,必须按顺序绑定
42 query.addBindValue(nameList);
43 query.addBindValue(ageList);
44 query.addBindValue(scoreList);
45 //执行预处理命令
46 query.execBatch();
47
48 query.exec("select * from student");
49 while (true == query.next()) { //一行一行遍历
50 //取出当前行的内容,以列为单位
51 qDebug() << query.value(0).toInt() //取第一列
52 << query.value(1).toString() //取第二列
53 << query.value("age").toInt()
54 << query.value("score").toInt();
55 }
56 }
57
58 Widget::~Widget()
59 {
60 delete ui;
61 }
View Code
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
《生活大爆炸》之科学揭秘
乔治·毕姆 / 韩准、徐漪、江业华、叶夜 / 世界图书出版公司 / 2012-12 / 49.00元
《 之科学揭秘:GEEK探索频道》对流行美剧《生活大爆炸》进行“深度解密”,重点在解读剧中涉及的流行文化及科学元素。正如我们所知,《生活大爆炸》是一部“技术含量很高”的肥皂剧。不光是普通观众,科学家也爱《生活大爆炸》。《 之科学揭秘:GEEK探索频道》中,科学家详尽为你解释了电视剧中出现的科学道理和典故。包括谢尔顿的高深弦理论、霍华德的花生过敏是怎么回事、如果你和谢尔顿的妈妈有同样的信仰该如何看待......一起来看看 《《生活大爆炸》之科学揭秘》 这本书的介绍吧!
图片转BASE64编码
在线图片转Base64编码工具
URL 编码/解码
URL 编码/解码