当前位置: 首页 > news >正文

5、QT中SQLite数据库的操作

一、QT中的SQLite数据库

1、添加头文件和模块

Header:
#include <QSqlDatabase> 
qmake:
QT += sql//pro文件添加sql模块

执行数据库操作的类:

Header:
#include <QSqlQuery> 
qmake:
QT += sql

2、C语言中的SQLite增删减查

SQLite3的基础教程

3、SQLite的初始化

①、创建数据库的链接对象:

QSqlDatabase dataBase;

②、使用数据库驱动

dataBase = QSqlDatabase :: addDatabase("QSQLITE");//添加数据库的驱动

③、设置数据库的名称(创建一个数据库)

dataBase.setDatabaseName("QSQLITE");

④、创建一张表

QString table = "create table user_table(user QString, paswd QString)";
sqlQuery = QSqlQuery(dataBase);//指定这个操作将在哪个数据库上执行。
bool flag = sqlQuery.exec(table);//执行数据库的操作

例子:

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);dataBase = QSqlDatabase :: addDatabase("QSQLITE");//添加数据库的驱动dataBase.setHostName("数据库");dataBase.setDatabaseName("QSQLITE");dataBase.setUserName("123456");dataBase.setPassword("123456");//打开数据库if(dataBase.open()){qDebug() << "打开成功" << endl;}//创建一张表QString table = "create table user_table(user QString, paswd QString)";//执行数据库的操作sqlQuery = QSqlQuery(dataBase);//执行操作的数据库:QSQLITEbool flag = sqlQuery.exec(table);//执行数据库的操作if(flag==true){qDebug()<<"数据库表创建成功"<<endl;}
}

4、插入数据

 QString insert = QString("insert into user_table(user,paswd) values('%1','%2')").arg(user).arg(paswd);

例子:

void Widget::on_pushButton_clicked()
{QString user = ui->lineEdit->text();QString paswd = ui->lineEdit_2->text();QString find = QString("select * from user_table where user='%1'").arg(user);bool ret = sqlQuery.exec(find);if(ret){if(sqlQuery.next()){qDebug() << "账号已经存在" << endl;ui->lineEdit->clear();ui->lineEdit_2->clear();return;}}QString insert = QString("insert into user_table(user,paswd) values('%1','%2')").arg(user).arg(paswd);bool flag = sqlQuery.exec(insert);//执行数据库插入操作if(!flag){qDebug()<<"数据插入失败"<<endl;}ui->lineEdit->clear();ui->lineEdit_2->clear();
}

5、查找数据

①、遍历所有数据并保存

QString find = "select * from user_table";
bool flag = sqlQuery.exec(find);//把遍历的所有数据都保存在sqlQuery内

②、对比数据

while(sqlQuery.next())//遍历查询结果中的每一行记录。
{//从查询结果中获取每一行记录的第一列和第二列的值QString user = sqlQuery.value(0).toString();QString paswd = sqlQuery.value(1).toString();if(user == code && paswd == pwd){qDebug() << "登录成功" << endl;}qDebug() << "账号:" << user << endl;qDebug() << "密码:" << paswd << endl;
}

例子:

void Widget::on_pushButton_2_clicked()
{QString code = ui->lineEdit->text();QString pwd = ui->lineEdit_2->text();QString find = "select * from user_table";bool flag = sqlQuery.exec(find);if(flag==true){qDebug()<<"数据库查询成功"<<endl;}while(sqlQuery.next()){QString user = sqlQuery.value(0).toString();QString paswd = sqlQuery.value(1).toString();if(user == code && paswd == pwd){qDebug() << "登录成功" << endl;}qDebug() << "账号:" << user << endl;qDebug() << "密码:" << paswd << endl;}
}

6、注意

  • 查询数据的时候,必须要先把遍历的数据保存在sqlQuery类中。
http://www.lryc.cn/news/156268.html

相关文章:

  • git回退到某个提交
  • 对可再生能源和微电网集成研究的新控制技术和保护算法进行基线和测试及静态、时域和频率分析研究(Matlab代码实现)
  • Full authentication is required to access this resource解决办法
  • Jetty:使用上下文文件部署离线瓦片.md
  • Docker实战:docker compose 搭建Rocketmq
  • STL常用容器 (C++核心基础教程之STL容器详解)String的API
  • 《人生苦短,我学Python》——条件判断->(if-elif-else)多向选择 条件嵌套
  • MongoDB 数据库性能优化技巧
  • 网络安全人才缺口超百万,如今的就业情况怎样?
  • 「MySQL」MySQL面试题全解析:常见问题与高级技巧详解
  • 【USRP】产品型号、参数、架构全解析系列 6:N320 / N321
  • Apifox 常用 JS 脚本
  • 防止SQL注入的四种方案
  • java单元测试
  • 【LeetCode】双指针求解和为s的两个数字
  • opencv识别一张图片的多个红框,并截取红框的内容
  • 数据库-事务
  • MySQL 使用开源审计插件
  • Python入门教程 | Python3 集合(Set)
  • 视频汇聚/视频云存储/视频监控管理平台EasyCVR安全检查的相关问题及解决方法2.0
  • 【C++模拟实现】反向迭代器的实现
  • Kubernetes技术--k8s核心技术持久化存储
  • 【80天学习完《深入理解计算机系统》】第十四天 复习第三章
  • 库中是如何实现string类的?
  • 无涯教程-JavaScript - WORKDAY.INTL函数
  • STM32--蓝牙
  • java 实现原型模式
  • maven本地安装jar包install-file,解决没有pom的问题
  • 【C++学习笔记】5、变量作用域
  • Python中的装饰器