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

QT链接ACCESS数据库

源代码链接

首先附上工程代码,方面大家自取。
链接: https://pan.baidu.com/s/1u9Xro3XuxV-Pxp54f6x33Q?pwd=r8iv 提取码: r8iv

 一、创建数据库

                1、创建以UserInfo.accdb命名的数据库。

                2、打开新创建的数据库,并点击表,将表改名为户籍信息

        3、   分别给表添加如下字段:姓名、国籍、电话、性别

二、QT的界面设计

三、链接数据库的代码的编写

        引入头文件

#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>

        数据库查询

    QString connectionName = "myConnection";QSqlDatabase db;if (QSqlDatabase::contains(connectionName)) {db = QSqlDatabase::database(connectionName);} else {db = QSqlDatabase::addDatabase("QODBC", connectionName);db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DSN='';DBQ=./UserInfo.accdb");db.setUserName("");db.setPassword("");}// 检查连接是否有效(如果之前已关闭,这里会重新打开)if (!db.open()) {qDebug() << "连接失败:" << db.lastError().text();return;}qDebug() << "Database connected successfully!";QString str_UserName = ui->Edit_text->text();bool found;// 执行数据库操作(例如查询)QSqlQuery query(db); // 使用成员变量 db 关联的连接query.prepare("SELECT * FROM 户籍信息 WHERE 姓名 = :username");query.bindValue(":username", str_UserName);if (!query.exec()) {// 查询失败QMessageBox::warning(this, "登录失败", "数据库查询失败!");return;}found = false;while (query.next()) {// 至少找到一条匹配的记录found = true;if(found){qDebug()<<query.value("姓名").toString();ui->Edit_name->setText(query.value("姓名").toString());qDebug()<<query.value("国籍").toString();ui->Edit_country->setText(query.value("国籍").toString());qDebug()<<query.value("电话").toString();ui->Edit_phone->setText(query.value("电话").toString());qDebug()<<query.value("性别").toString();if(query.value("性别").toString() == "男"){ui->Button_man->setChecked(true);ui->Button_woman->setChecked(false);}else if(query.value("性别").toString() == "女"){ui->Button_man->setChecked(false);ui->Button_woman->setChecked(true);}}}// 操作完成后关闭连接(可选,根据需求决定是否保持连接)db.close();

        添加数据

QString connectionName = "myConnection";QSqlDatabase db;if (QSqlDatabase::contains(connectionName)) {db = QSqlDatabase::database(connectionName);} else {db = QSqlDatabase::addDatabase("QODBC", connectionName);db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DSN='';DBQ=./UserInfo.accdb");db.setUserName("");db.setPassword("");}// 检查连接是否有效(如果之前已关闭,这里会重新打开)if (!db.open()) {qDebug() << "连接失败:" << db.lastError().text();return;}qDebug() << "Database connected successfully!";QString str_UserName = ui->Edit_name->text();bool found;// 执行数据库操作(例如查询)QSqlQuery query(db); // 使用成员变量 db 关联的连接query.prepare("SELECT * FROM 户籍信息 WHERE 姓名 = :username");query.bindValue(":username", str_UserName);if (!query.exec()) {// 查询失败QMessageBox::warning(this, "登录失败", "数据库查询失败!");return;}found = false;while (query.next()) {// 至少找到一条匹配的记录found = true;}if (!found) {// 插入操作示例query.prepare("INSERT INTO 户籍信息 (姓名, 国籍, 电话, 性别) VALUES (:value1, :value2, :value3, :value4)");query.bindValue(":value1", ui->Edit_name->text());query.bindValue(":value2", ui->Edit_country->text());query.bindValue(":value3", ui->Edit_phone->text());if(ui->Button_man->isChecked() == true){query.bindValue(":value4", "男");}else{query.bindValue(":value4", "女");}if (!query.exec()) {qDebug() << "Insert error:" << query.lastError().text();} else {db.close();}}

        删除数据

QString connectionName = "myConnection";QSqlDatabase db;if (QSqlDatabase::contains(connectionName)) {db = QSqlDatabase::database(connectionName);} else {db = QSqlDatabase::addDatabase("QODBC", connectionName);db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DSN='';DBQ=./UserInfo.accdb");db.setUserName("");db.setPassword("");}// 检查连接是否有效(如果之前已关闭,这里会重新打开)if (!db.open()) {qDebug() << "连接失败:" << db.lastError().text();return;}qDebug() << "Database connected successfully!";QString str_UserName = ui->Edit_name->text();// 执行数据库操作(例如查询)QSqlQuery query(db); // 使用成员变量 db 关联的连接query.prepare("DELETE FROM 户籍信息 WHERE 姓名 = :username");query.bindValue(":username", ui->Edit_text->text());if (query.exec()) {ui->Edit_name->setText("");ui->Edit_country->setText("");ui->Edit_phone->setText("");ui->Button_man->setChecked(false);ui->Button_woman->setChecked(false);}

        改数据

    QString connectionName = "myConnection";QSqlDatabase db;if (QSqlDatabase::contains(connectionName)) {db = QSqlDatabase::database(connectionName);} else {db = QSqlDatabase::addDatabase("QODBC", connectionName);db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DSN='';DBQ=./UserInfo.accdb");db.setUserName("");db.setPassword("");}// 检查连接是否有效(如果之前已关闭,这里会重新打开)if (!db.open()) {qDebug() << "连接失败:" << db.lastError().text();return;}qDebug() << "Database connected successfully!";QString str_UserName = ui->Edit_name->text();// 执行数据库操作(例如查询)QSqlQuery query(db); // 使用成员变量 db 关联的连接query.prepare("UPDATE 户籍信息 SET 姓名 = :Value1, 国籍 = :Value2, 电话 = :Value3 WHERE 姓名 = :name");query.bindValue(":name", ui->Edit_text->text());query.bindValue(":Value1", ui->Edit_name->text());query.bindValue(":Value2", ui->Edit_country->text());query.bindValue(":Value3", ui->Edit_phone->text());if (query.exec()) {qDebug()<<"执行成功";}else{qDebug()<<"执行失败";}


文章转载自:
http://castries.dxwdwl.cn
http://attractable.dxwdwl.cn
http://anilingus.dxwdwl.cn
http://chromic.dxwdwl.cn
http://absorptivity.dxwdwl.cn
http://cadaver.dxwdwl.cn
http://bridie.dxwdwl.cn
http://aeacus.dxwdwl.cn
http://abase.dxwdwl.cn
http://billfold.dxwdwl.cn
http://albugineous.dxwdwl.cn
http://avulsed.dxwdwl.cn
http://anopheles.dxwdwl.cn
http://cerebel.dxwdwl.cn
http://chessman.dxwdwl.cn
http://adipic.dxwdwl.cn
http://cantonal.dxwdwl.cn
http://araneology.dxwdwl.cn
http://betrayer.dxwdwl.cn
http://behar.dxwdwl.cn
http://aloeswood.dxwdwl.cn
http://ceremonious.dxwdwl.cn
http://athambia.dxwdwl.cn
http://bacciferous.dxwdwl.cn
http://biophilia.dxwdwl.cn
http://avenge.dxwdwl.cn
http://brunhild.dxwdwl.cn
http://bioresearch.dxwdwl.cn
http://autism.dxwdwl.cn
http://buckler.dxwdwl.cn
http://www.dtcms.com/a/280540.html

相关文章:

  • Oracle 索引实战教程
  • Rust基础[part4]_基本类型,所有权
  • 编译原理第一到三章(知识点学习/期末复习/笔试/面试)
  • 正则表达式使用示例
  • 【canal+mysql+example+数据验证测试】
  • 从 0 到 1 掌握 自研企业级分布式 ID 发号器
  • C 语言(二)
  • GaussDB 数据库架构师修炼(三) 集群管理概览
  • Kafka 4.0 技术深度解析
  • 现代CSS实战:用变量与嵌套重构可维护的前端样式
  • Go 错误处理全解析:从 error 到 panic
  • Go 包管理工具详解:安装与使用指南
  • 【轨物方案】当补贴退潮,光伏电站如何回归价值本质?
  • 上公网-从内网到公网
  • 李宏毅《生成式人工智能导论》 | 第9讲 AI Agent
  • 本地电脑安装Dify|内网穿透到公网
  • 1.1 前端-vue3项目的创建
  • JS基础知识(下)
  • docker容器、宿主机、cpu核数关系
  • c# sqlsugar 主子表明细 查询
  • C语言操作符补充
  • linux系统------HAProxy 配置
  • 酷淘商场项目【从零到一详解】Web端抓包操作与测试报告(二)
  • 部署项目将dll放到system32?不可取
  • Ubuntu环境下的K3S集群搭建
  • 【如何理解SerializedProperty】
  • 【项目】-番茄时钟设计
  • 云手机隐私保护指南:如何保障账号与数据的云端安全?
  • 编程技能:多文件编译
  • 本地 LLM API Python 项目分步指南