写点什么

C++ 查询数据库后写入 Qtableview 中配合 Qstandaritemmodel

作者:linux大本营
  • 2023-04-27
    湖南
  • 本文字数:775 字

    阅读完需:约 3 分钟

C++连接数据库并查询数据可以使用 Qt 提供的 Sql 模块,具体步骤如下:


  1. 在 Qt 项目中添加 Sql 模块支持。

  2. 使用 QSqlDatabase 对象连接数据库,并设置用户名、密码、主机名和数据库名等信息。

  3. 执行 SQL 语句查询数据库中的数据,通过 QSqlQuery 对象读取查询结果。

  4. 将查询结果写入 QStandardItemModel 中,再通过 QTableView 显示出来。


具体代码如下:


#include <QtSql>#include <QTableView>#include <QStandardItemModel>
// 连接数据库QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");db.setHostName("localhost"); // 主机名db.setDatabaseName("test"); // 数据库名db.setUserName("root"); // 用户名db.setPassword("123456"); // 密码
if (!db.open()) { qDebug() << "Failed to connect database"; return;}
// 执行SQL语句查询数据QSqlQuery query;query.exec("SELECT * FROM student");
// 创建QStandardItemModel并将查询结果写入QStandardItemModel* model = new QStandardItemModel();model->setColumnCount(query.record().count()); // 设置列数
int row = 0;while (query.next()) { // 遍历查询结果 for (int i = 0; i < model->columnCount(); i++) { QStandardItem* item = new QStandardItem(query.value(i).toString()); model->setItem(row, i, item); // 写入model } row++;}
// 创建QTableView并设置modelQTableView* tableView = new QTableView();tableView->setModel(model);
// 显示QTableViewtableView->show();
复制代码


以上代码将查询结果写入 QStandardItemModel,并在 QTableView 中显示出来。可以根据需要对 QStandardItemModel 进行进一步处理,比如设置表头、对单元格进行编辑等。


相关技术视频教程:c/c++ linux服务器开发/后台架构师免费学习地址

c/c++后端技术交流群:579733396

用户头像

还未添加个人签名 2020-11-26 加入

C/C++linux服务器开发群 812855908

评论

发布
暂无评论
C++查询数据库后写入Qtableview中配合Qstandaritemmodel_c++_linux大本营_InfoQ写作社区