内容简介:参考视频:说明:本文对在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
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JavaScript语言精髓与编程实践
周爱民 / 电子工业出版社 / 2012-3 / 79.00元
《JavaScript语言精髓与编程实践(第2版)》详细讲述JavaScript作为一种混合式语言的各方面特性,包括过程式、面向对象、函数式和动态语言特性等,在动态函数式语言特性方面有着尤为细致的讲述。《JavaScript语言精髓与编程实践(第2版)》的主要努力之一,就是分解出这些语言原子,并重现将它们混合在一起的过程与方法。通过从复杂性到单一语言特性的还原过程,读者可了解到语言的本质,以及“层......一起来看看 《JavaScript语言精髓与编程实践》 这本书的介绍吧!