这篇帖子是我最近学习QT的sqlite数据库整理的,之前学的是MySQL应用与Java,现在重新捡起来,小白可以看看,特别简单适合小白。
一、首先看一下布局,形成一个整体的思路
1、添加书获取左边lineEdit的内容
2、删除时通过学号删除。
3、修改是通过学号或者姓名修改
4、查找时上面的文本框输入sql语句(select * from StuInfo where age=22;),然后点击查询,下面的文本框显示结果。
二、数据库内容:
1、字段包括:学号(num)、姓名(name)、年龄(age)、成绩(score)。
看图:
三、工程目录的文件夹包括
如图:
1、数据库的连接、打开、初始化建表放在主函数里面(ps:不要将数据库的关闭放在主函数里面)
上代码:
main.cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
QApplication a(argc, argv);
QSqlDatabase mydb=QSqlDatabase::addDatabase("QSQLITE");
mydb.setDatabaseName("stu.db");
if(!mydb.open())
qDebug()<<"数据库打开失败"<<mydb.lastError().text();
QSqlQuery query;
QString sql="create table if not exists StuInfo(num integer PRIMARY KEY, \
name text, age integer, score real);";
if(!query.exec(sql))
qDebug()<<"sql语句执行失败:"<<query.lastError().text();
MainWindow w;
w.show();
return a.exec();
2、然后就是就是对于数据的操作,增加、删除、查找、修改。
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
ui->setupUi(this);
MainWindow::~MainWindow()
delete ui;
void MainWindow::on_pushButton_clicked()
QSqlQuery query;
QString sql=QString("insert into StuInfo(num,name,age,score) values (%1,'%2',%3,%4)")
.arg(ui->lineEdit_num->text())
.arg(ui->lineEdit_name->text())
.arg(ui->lineEdit_age->text())
.arg(ui->lineEdit_score->text());
if(query.exec(sql))
qDebug()<<"添加成功";
qDebug()<<"添加失败:"<<query.lastError().text();
void MainWindow::on_pushButton_2_clicked()
QSqlQuery query;
QString sql=QString("delete from StuInfo where num=%1").arg(ui->lineEdit_num->text());
if(query.exec(sql))
qDebug()<<"删除成功";
qDebug()<<"删除失败:"<<query.lastError().text();
void MainWindow::on_pushButton_3_clicked()
QSqlQuery query;
QString sql=QString("update StuInfo set age=%1 ,score=%2 where num=%3 or name='%4';")
.arg(ui->lineEdit_age->text())
.arg(ui->lineEdit_score->text())
.arg(ui->lineEdit_num->text())
.arg(ui->lineEdit_name->text());
if(query.exec(sql))
qDebug()<<"修改成功";
qDebug()<<"修改失败:"<<query.lastError().text();
void MainWindow::on_pushButton_4_clicked()
QSqlQuery query;
QString sql=QString(ui->textEdit->toPlainText());
if(query.exec(sql))
qDebug()<<"查询成功";
qDebug()<<"查询失败:"<<query.lastError().text();
QSqlRecord record=query.record();
int n=record.count();
while(query.next())
int num=query.value(0).toInt();
QString name=query.value(1).toString();
int age=query.value(2).toInt();
double score=query.value(3).toDouble();
qDebug()<<num<<name<<age<<score;
QString all=query.value(0).toString()+"\t"+name+"\t"+query.value(2).toString()+"\t"+query.value(3).toString();
qDebug()<<all;
ui->textEdit_ret->setText(all);
注意:可能这里里面的控件的命名跟你的不一样,复制粘贴代码的时候应该注意下(大佬就不用看了)。
此外:关于sqlite数据库的内容的话,目前我觉得需要注意的是,sql语句正确性是关键,然后没有啥了。如果需要源码的可以私聊。
像扣篮的程序员小李一直在努力,有用的老铁记得点赞。拜拜。
这篇帖子是我最近学习QT的sqlite数据库整理的,之前学的是MySQL应用与Java,现在重新捡起来,小白可以看看,特别简单适合小白。一、首先看一下布局,形成一个整体的思路1、添加书获取左边lineEdit的内容2、删除时通过学号删除。3、修改是通过学号或者姓名修改4、查找时上面的文本框输入sql语句(select * from StuInfo where age=22;),然后点击查询,下面的文本框显示结果。二、数据库内容:1、字段包括:学号(num)、姓名(name)、年龄(age)、
QT应用SQL数据库,简单全面的应用,增删改查。
对于从来没接触过数据库的人来说,网上很多教程都太学术了。很多基本概念不了解的萌新,理解起来比较困难。这里一步一步操作,让小白也能掌握QT环境下SQL数据库的基本操作。
基本功能就是 “增删改查 ” 四个按钮。
1.头文件和 .pro 文件
.pro 文件中
QT += sql
.h文件中,添加头文件
#include <QSqlQuery>
#include <QtSql>
#include <q
在台式机上测试Sqlite不同插入方案对比发现:select-stmt是插入速度最快的方式,事务虽然也能加快插入数据,相较于STMT还是慢了不少。
#include <QCoreApplication>
#include <QSqlQuery>
#include <QSqlDatabase>
#include <QSqlDriver>
#include <QSqlError>
#include <QDateTime>
#includ
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
//数据库驱动类型为SQL Server,a为设置的数据库名称,可以随便写
qDebug()<<"ODBC driver?"<<db.isValid();
Qt提供了一种进程内数据库SQLite。它小巧灵活,无须额外安装配置且支持大部分ANSI SQL92标准,是一个轻量级的数据库,概括起来具有以下优点。
SQLite的设计目的是实现嵌入式SQL数据库引擎,它基于纯C语言代码,已经应用在非常广泛的领域内。
SQLite在需要持久存储时可以直接读写硬盘上的数据文件,在无须持久存储时也可以将整个数据库置于内存中,两者均不需要额外的服务器端进程,即SQLite是无须独立运行的数据库引擎。
开放源代码,整套代码少于3万行,有良好的注释和90%以上的测试覆盖率。
QSqlDatabase addDatabase(const QString &type, const QString &connectionName = QLatin1String(defaultConnection))
该函数是用来把我们的数据库添加到连接列表中,
参数1:表示你是什么类型的数据库,比如sqlite的话就用QSQLITE
参数2:连接名称,
QFileSystemWatcher的作用是监视本地文件夹的变化以及文件的变化。
QFileSystemWatcher的实现类是QFileSystemWatcherPrivate。 其中QFileSystemWatcherPrivate中的关键成员变量QFileSystemWatcherEngine用于监视目录以及文件的变化,发送信号给QFileystemWatcher。其中QFileSystemWatcherEngine派生了三个类。
class QFile
Ubuntu的/mnt/hgfs共享文件夹里面没有东西,VMware tools是灰色
和和快跑:
Ubuntu的/mnt/hgfs共享文件夹里面没有东西,VMware tools是灰色
VLADIMIRZOE:
Ubuntu的/mnt/hgfs共享文件夹里面没有东西,VMware tools是灰色
XiaoJake: