一文带你Qt数据库从入门到实战
文章目录
- 示例图
- 主要实现功能点
- 入门
- SQLite
- QSqlTableModel
- 实战
- 导入
- 导出
- ���结
示例图
主要实现功能点
- 导入导出与初始化数据库
- 数据的增删改查
- 数据的撤销与保存
- 数据的排序与过滤
- 图片的自定义行为
- 控件与数据之间的交互
- 文末我会提供源码给大家参考
入门
- 简单的入门QT数据库我们从了解QSQLite与QSqlTableModel开始。
SQLite
- 一个轻量级的数据库引擎,它的数据库是一个单一文件,因此非常适合移动应用和嵌入式设备。Qt 通过 SQL 模块提供对 SQLite 的接口,可以执行创建、查询、更新和删除(CRUD)操作,以及管理数据库连接和事务。
以下是使用 Qt SQLite 数据库的基本步骤:
- 包含必要的头文件:
#include #include #include
- 创建数据库连接:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("your_database.db"); if (!db.open()) { qDebug() qDebug() qDebug() while (query.next()) { int id = query.value(0).toInt(); QString name = query.value(1).toString(); int age = query.value(2).toInt(); qDebug() qDebug() qDebug() qDebug() qDebug() qDebug() // 打开数据表 QString aFile = QFileDialog::getOpenFileName(this, "选择数据库文件", "", "SQL Lite数据库(*.db *.db3)"); if (aFile.isEmpty()) // 选择SQL Lite数据库文件 return; // 打开数据库 DB = QSqlDatabase::addDatabase("QSQLITE"); // 添加 SQL LITE数据库驱动 DB.setDatabaseName(aFile); // 设置数据库名称 // DB.setHostName();//若是需要用户密码 // DB.setUserName(); // DB.setPassword(); if (!DB.open()) // 打开数据库 { QMessageBox::warning(this, "错误", "打开数据库失败", QMessageBox::Ok, QMessageBox::NoButton); return; } // 打开数据表 openTable(); } - `openTable()`是非常关键的函数,里面交代了`QSqlTableModel`的设置,代码过长,在源码中。 if (tabModel == nullptr) return; // 获取原始数据库的结构 QSqlRecord record = tabModel-record(); // 断开现有Qt管理的数据库连接,并连接到一个新的数据库文件 QString connectionName = "NewConnection"; QSqlDatabase newDB = QSqlDatabase::addDatabase("QSQLITE", connectionName); QString saveFilePath = QFileDialog::getSaveFileName(nullptr, "Save File", QString(), // 默认保存的文件夹路径,这里使用默认值 "SQL Lite数据库(*.db *.db3)"); newDB.setDatabaseName(saveFilePath); if (!newDB.open()) return; QSqlQuery query(newDB); QString createTableQuery = QString("CREATE TABLE %1 (").arg(tabModel-tableName()); // 创造表 for (int i = 0; i
- 一个轻量级的数据库引擎,它的数据库是一个单一文件,因此非常适合移动应用和嵌入式设备。Qt 通过 SQL 模块提供对 SQLite 的接口,可以执行创建、查询、更新和删除(CRUD)操作,以及管理数据库连接和事务。
- 简单的入门QT数据库我们从了解QSQLite与QSqlTableModel开始。
The End