首页
/ 使用QTableViewQSqlTableMode与QSqlDatabase对数据库数据进行操作的Demo

使用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框架下数据库操作的核心技术,提升开发效率。