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

南宁市住房建设局网站哈尔滨建站软件

南宁市住房建设局网站,哈尔滨建站软件,电子商务网站建设规模计划,做网站上传资源在 Qt 中读写数据库,常用的方式是通过 Qt SQL 模块(QtSql),它提供了一个统一的数据库访问接口,支持多种数据库驱动(SQLite、MySQL、PostgreSQL、ODBC 等)。 对于轻量级的嵌入式应用,…

Qt 中读写数据库,常用的方式是通过 Qt SQL 模块(QtSql),它提供了一个统一的数据库访问接口,支持多种数据库驱动(SQLite、MySQL、PostgreSQL、ODBC 等)。
对于轻量级的嵌入式应用,SQLite 是最常用的数据库,因为它无需安装独立服务,只需要一个数据库文件即可完成数据存储和读写,非常适合 Qt 桌面应用。


✅ Qt 访问数据库的常用方式

方式优点缺点适用场景
QSqlDatabase + QSqlQuery直接操作 SQL 语句,灵活、通用需要手动写 SQL,容易出错对 SQL 熟悉,灵活需求
QSqlTableModel / QSqlRelationalTableModel直接与 Qt Model/View 框架配合,支持表格视图显示只适合简单表格,不便于复杂查询需要与 QTableView 绑定的 UI
QSqlQueryModel支持只读 SQL 查询结果显示不能直接修改数据需要展示查询结果但不修改数据

👉 推荐

  • 如果你只是简单地读写数据库,用 QSqlDatabase + QSqlQuery 方式最灵活。

  • 如果要直接绑定到 QTableView,可以用 QSqlTableModel


💡 示例:Qt 读写 SQLite 数据库

以下示例演示如何使用 QSqlDatabase + QSqlQuery 完成创建数据库、建表、插入数据、查询数据的完整流程。

1️⃣ 工程配置

.pro 文件中加入:

QT += sql

2️⃣ 代码示例 (main.cpp)

#include <QCoreApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QVariant>
#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);// 1. 连接数据库QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");db.setDatabaseName("test.db"); // 数据库文件,不存在会自动创建if (!db.open()) {qDebug() << "无法打开数据库:" << db.lastError().text();return -1;}QSqlQuery query;// 2. 创建表if (!query.exec("CREATE TABLE IF NOT EXISTS person (""id INTEGER PRIMARY KEY AUTOINCREMENT,""name TEXT,""age INTEGER)")) {qDebug() << "创建表失败:" << query.lastError().text();}// 3. 插入数据query.prepare("INSERT INTO person (name, age) VALUES (?, ?)");query.addBindValue("Alice");query.addBindValue(25);if (!query.exec())qDebug() << "插入数据失败:" << query.lastError().text();query.addBindValue("Bob");query.addBindValue(30);if (!query.exec())qDebug() << "插入数据失败:" << query.lastError().text();// 4. 查询数据if (query.exec("SELECT id, name, age FROM person")) {while (query.next()) {int id = query.value(0).toInt();QString name = query.value(1).toString();int age = query.value(2).toInt();qDebug() << "ID:" << id << " Name:" << name << " Age:" << age;}} else {qDebug() << "查询失败:" << query.lastError().text();}return 0;
}

🔑 关键点说明

  • 数据库驱动

    • SQLite 驱动名是 QSQLITE,Qt 自带,无需额外安装。

  • 自动创建文件

    • db.setDatabaseName("test.db") 如果文件不存在会自动生成。

  • 参数绑定

    • 使用 query.preparequery.addBindValue 可以避免 SQL 注入问题。


🖼️ 如果需要 UI 表格展示

可以直接在 QTableView 里显示:

QSqlTableModel *model = new QSqlTableModel(this, db);
model->setTable("person");
model->select();
ui->tableView->setModel(model);

总结

  • 最通用QSqlDatabase + QSqlQuery,适合所有读写操作。

  • 快速显示表格QSqlTableModel + QTableView,适合简单的 CRUD 界面。

http://www.dtcms.com/a/484175.html

相关文章:

  • 温州建设小学的网站商业网站建设教程
  • 搭建网站团队计划wordpress 文件上传插件
  • ICT 数字测试原理 22 - -系统保护
  • Linux动静态库:库的制作与使用
  • 上饶专业的企业网站建设公司建设电影网站论文
  • 混合精度参数说明及数据集相关参数(121)
  • 网站建设前期规划中学生做的网站有哪些
  • 滨州网站建设哪家好空气炸锅做糕点的网站
  • 广州网站设计公司推荐哪家落地页网站建设
  • discuz网站编码戚墅堰网站建设
  • 电子商务网站设计与规划网站建设工作情况
  • 唐山网站制作价格做网站用什么软件?
  • 【04】C#入门到精通——C# 程序错误处理, try catch 捕获异常,避免程序崩溃
  • 学校建设网站目标东营网站建设那家好
  • 上市公司网站建设分析评价wordpress前台注册登录弹窗代码
  • 站长平台工具淮南电商网站建设价格
  • ST_7735S TFT屏幕驱动移植 (at32f421c8t7)
  • 网站留言短信通知 源码wordpress 网页搜索排名
  • 主营网站建设会计记账产品推广软文范文
  • 手机上网网站建设wordpress+判断标签
  • 网站设计是做什么的wordpress淘宝客网站模板
  • 微信做购物网站怎么抽佣wordpress官方模板下载
  • 我的网站是面向全国的选哪个公司的服务器比较好手机wap网站建设解决方案
  • 网上接网站做唐山市住房和诚乡建设局网站
  • 南宁专业做网站高水平的郑州网站建设
  • 聊天室项目开发——说明开发环境,安装并使用第一个第三方库gflags
  • 如何建设个人免费网站教程视频自己做动漫头像的网站
  • 旅行社网站建设方案书创新能力建设资金网站
  • 电子电气架构 --- 车载操作系统鸿蒙OS和AliOS
  • 网站建设怎么做帐门户模板