使用QTableViewQSqlTableMode与QSqlDatabase对数据库数据进行操作的Demo
2025-08-17 00:37:31作者:郦嵘贵Just
1. 适用场景
本Demo非常适合需要快速实现数据库数据展示与操作的开发者,尤其适用于以下场景:
- 需要将数据库表中的数据以表格形式展示。
- 需要对数据库进行增删改查(CRUD)操作。
- 希望利用Qt框架的高效性和跨平台特性开发数据库应用。
2. 适配系统与环境配置要求
系统支持
- Windows 10/11
- macOS 10.15及以上版本
- Linux主流发行版(如Ubuntu 20.04及以上)
环境配置
- Qt 5.15及以上版本
- 支持SQLite、MySQL或PostgreSQL等常见数据库
- C++编译器(如GCC、MSVC或Clang)
3. 资源使用教程
步骤1:初始化数据库连接
使用QSqlDatabase
类初始化数据库连接,确保数据库驱动已正确加载并建立连接。
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("example.db");
if (!db.open()) {
qDebug() << "Failed to connect to database.";
}
步骤2:创建数据模型
通过QSqlTableModel
类创建数据模型,并将其绑定到QTableView
。
QSqlTableModel *model = new QSqlTableModel(nullptr, db);
model->setTable("your_table_name");
model->select();
QTableView *view = new QTableView;
view->setModel(model);
view->show();
步骤3:实现数据操作
通过模型提供的方法实现数据的增删改查操作。
// 新增数据
model->insertRow(model->rowCount());
model->setData(model->index(model->rowCount() - 1, 0), "new_data");
// 提交更改
model->submitAll();
4. 常见问题及解决办法
问题1:数据库连接失败
- 原因:数据库驱动未正确加载或数据库文件路径错误。
- 解决:检查数据库驱动是否可用,并确保数据库文件路径正确。
问题2:数据无法显示
- 原因:模型未正确绑定到表格视图或未调用
select()
方法。 - 解决:确保模型已绑定到视图,并调用
select()
方法加载数据。
问题3:数据修改未生效
- 原因:未调用
submitAll()
方法提交更改。 - 解决:在修改数据后调用
submitAll()
方法保存更改。
通过本Demo,开发者可以快速掌握Qt框架下数据库操作的核心技术,提升开发效率。