ubuntu-18.04 linux-QT版 演示sqlite3增删改查
创始人
2024-04-04 12:42:15

ubuntu-18.04 linux-QT版 演示sqlite3增删改查

  • 【1】sqlite3_test1.pro
  • 【2】mainwindow.ui
  • 【3】mainwindow.h
  • 【4】mainwindow.cpp
  • 【5】效果演示


【1】sqlite3_test1.pro

添加sql

在这里插入图片描述

【2】mainwindow.ui

在这里插入图片描述


【3】mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
//   2022-11-5
typedef struct SQL_DATA{QString car_id;             /* 车牌号 */QString car_pos;            /* 车位号 */QString card_id;           /* 卡号 */int age;                   /* 人脸特征数据大小 */QByteArray t_featuredata; /* 人脸特征数据 */QString t_datetime;       /* 存车时间 */
} SQL_DATA_TypeDef;
/*Q_DECLARE_METATYPE ->这个宏只要提供公共默认构造函数、公共复制构造函数。需要在QVariant中使用类型作为自定义类型。*/
Q_DECLARE_METATYPE(SQL_DATA)class MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void on_pushButton_clicked();void on_pushButton_2_clicked();void on_pushButton_6_clicked();void on_pushButton_3_clicked();void on_pushButton_7_clicked();void on_pushButton_4_clicked();void on_pushButton_5_clicked();private:Ui::MainWindow *ui;QSqlDatabase db1;QSqlDatabase db2;QSqlQuery *que;QSqlRecord rec;
};
#endif // MAINWINDOW_H

【4】mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);//ZH_CHINAQTextCodec *codec = QTextCodec::codecForName("UTF-8");QTextCodec::setCodecForLocale(codec);
}MainWindow::~MainWindow()
{delete ui;
}
//create database
void MainWindow::on_pushButton_6_clicked()
{db1.removeDatabase("RB");//every create database daletedb1 = QSqlDatabase::addDatabase("QSQLITE","RB");db1.setDatabaseName("1.db");bool ret = db1.open();if(ret == true)ui->textEdit->append("open 1.db sucess");elseui->textEdit->append(db1.lastError().text());que = new QSqlQuery(db1);
}
//create table
void MainWindow::on_pushButton_2_clicked()
{if(que->exec("drop table if exists rb_tab1;"))ui->textEdit->append("drop table sucess");elseui->textEdit->append(que->lastError().text());bool t =que->exec("create table if not exists rb_tab1(id integer ,name text,height real);");if(!t) ui->textEdit->append(que->lastError().text());else ui->textEdit->append("create table rb_tab1 sucess");
}
//insert data
void MainWindow::on_pushButton_clicked()
{QString str = QString("insert into rb_tab1 values(10086,'TDM',18.99);");if(!que->exec(str)) ui->textEdit->append(que->lastError().text());else ui->textEdit->append("insert  rb_tab1 sucess");
}
//select data
void MainWindow::on_pushButton_3_clicked()
{QString str = QString("select *from rb_tab1;");if(que->exec(str)){ui->textEdit->append("select *from rb_tab1 sucessful;");}else{ui->textEdit->append(que->lastError().text());}//get [select *from rb_tab1] resultrec = que->record();//return data values countint count = rec.count();ui->textEdit->append(QString("table data tatol number =%1").arg(count));if(count == 3){while (que->next()) {ui->textEdit->append(QString("id =%1 \t name =%2 \t height =%3").arg(que->value(0).toInt()).arg(que->value(1).toString()).arg(que->value(2).toDouble()));}}else{while (que->next()) {ui->textEdit->append(QString("id =%1 \t name =%2 \t height =%3 \t card_id =%4").arg(que->value(0).toInt()).arg(que->value(1).toString()).arg(que->value(2).toDouble()).arg(que->value(3).toString()));}}
}
//show table values
void MainWindow::on_pushButton_7_clicked()
{QString str = QString("select *from rb_tab1;");if(que->exec(str)){ui->textEdit->append("select *from rb_tab1 sucessful;");}else{ui->textEdit->append(que->lastError().text());}//get [select *from rb_tab1] resultrec = que->record();//return data values countint count = rec.count();if(count == 3){ui->textEdit->append(QString("table data tatol number =%1").arg(count));while (que->next()) {ui->textEdit->append(QString("id =%1 \t name =%2 \t height =%3").arg(que->value(0).toInt()).arg(que->value(1).toString()).arg(que->value(2).toDouble()));}}else if(count == 4){ui->textEdit->append(QString("table data tatol number =%1").arg(count));while (que->next()) {ui->textEdit->append(QString("id =%1 \t name =%2 \t height =%3 \t char_id = %4").arg(que->value(0).toInt()).arg(que->value(1).toString()).arg(que->value(2).toDouble()).arg(que->value(3).toString()));}}
}
//update table values
void MainWindow::on_pushButton_4_clicked()
{int ret =que->exec("update rb_tab1 set id =200,name = 'NMD',height = 23.55;");if(ret){ui->textEdit->append("update table value sucessful");}else{ui->textEdit->append(que->lastError().text());}QString str = QString("select *from rb_tab1;");if(que->exec(str)){ui->textEdit->append("select *from rb_tab1 sucessful;");}else{ui->textEdit->append(que->lastError().text());}//get [select *from rb_tab1] resultrec = que->record();//return data values countint count = rec.count();if(count == 4){int ret =que->exec("update rb_tab1 set id =200,name = 'NMD',height = 23.55,card_id = '222222';");if(ret){ui->textEdit->append("update table value sucessful");}else{ui->textEdit->append(que->lastError().text());}}
}
//add new column
void MainWindow::on_pushButton_5_clicked()
{int ret =que->exec("alter table rb_tab1 add card_id char(18);");if(ret){ui->textEdit->append("alter table rb_tab1 add card_id char(18)");}else{ui->textEdit->append(que->lastError().text());}
}

【5】效果演示

创建数据库
在这里插入图片描述
在此数据库下创建表格
在这里插入图片描述
插入一行 三列 第一行数据 ==
在这里插入图片描述
== 查询刚刚插入的数据

在这里插入图片描述
更新数据 覆盖第一行的所有值
在这里插入图片描述
查询更新后的值
在这里插入图片描述
新增一列
在这里插入图片描述
插入数据 包括新增的列
在这里插入图片描述
在这里插入图片描述
显示所有插入的值
在这里插入图片描述


本次小测试结束


相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...