这篇帖子是我最近学习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();
    //执行sql命令
    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();
    //定义数据记录的对象,拿到select命令的执行结果
    QSqlRecord record=query.record();
    //返回数据字段的个数
    int n=record.count();
    //显示数据select * from StuInfo where age=22;
    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 bind: Cannot assign requested address 1. 第一步,先查一下自己ubuntu的IP地址 hq123@ubuntu:~/a_test$ ifconfig server.sin_addr.s_addr = inet_addr("192.168.50.6"); // 服务器的 IP 地址 2. 第二步 ,bind 绑定的IP地址要和自己电脑(ubuntu)的IP地址一样 server.sin_addr.s_addr = inet_addr("192.168.50.6"); Ubuntu的/mnt/hgfs共享文件夹里面没有东西,VMware tools是灰色 和和快跑: Ubuntu的/mnt/hgfs共享文件夹里面没有东西,VMware tools是灰色 VLADIMIRZOE: 感谢,有用,我的centos8的系统,刚开始没成功,后来把.host:/ /双斜杠中间加了个空格,然后就成了 Ubuntu的/mnt/hgfs共享文件夹里面没有东西,VMware tools是灰色 XiaoJake: