iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C/C++ Qt数据库SqlRelationalTable关联表怎么使用
  • 144
分享到

C/C++ Qt数据库SqlRelationalTable关联表怎么使用

2023-06-22 00:06:03 144人浏览 薄情痞子
摘要

本篇内容介绍了“C/C++ Qt数据库sqlRelationalTable关联表怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所

本篇内容介绍了“C/C++ Qt数据库sqlRelationalTable关联表怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

首先我们创建两张表,一张Student表存储学生名字以及学生课程号,另一张Departments存储每个编号所对应的系所名称,运行代码完成创建。

void MainWindow::InitSQL(){    QSqlDatabase db = QSqlDatabase::aDDDatabase("QSQLITE");    db.setDatabaseName("./lyshark.db");    if (!db.open())           return;    // 执行SQL创建表    db.exec("DROP TABLE Student");    db.exec("CREATE TABLE Student ("                   "id INTEGER PRIMARY KEY AUTOINCREMENT, "                   "name VARCHAR(40) NOT NULL, "                   "departID INTEGER NOT NULL)"            );    // 逐条插入数据    db.exec("INSERT INTO Student(name,departID) VALUES('zhangsan',10)");    db.exec("INSERT INTO Student(name,departID) VALUES('lisi',20)");    db.exec("INSERT INTO Student(name,departID) VALUES('wangwu',30)");    db.exec("INSERT INTO Student(name,departID) VALUES('wangmazi',40)");    db.exec("DROP TABLE Departments");    db.exec("CREATE TABLE Departments("            "departID INTEGER NOT NULL,"            "department VARCHAR(40) NOT NULL)"            );    db.exec("INSERT INTO Departments(departID,department) VALUES (10,'数学学院')");    db.exec("INSERT INTO Departments(departID,department) VALUES (20,'物理学院')");    db.exec("INSERT INTO Departments(departID,department) VALUES (30,'计算机学院')");        db.commit();    db.close();}

初始化后将得到两张数据表,这两张表通过departID相关联,如下:

C/C++ Qt数据库SqlRelationalTable关联表怎么使用

创建完成后,我们在程序的构造函数直接实现绑定即可,这段代码很简单如下:

// https://www.cnblogs.com/lysharkMainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow){    ui->setupUi(this);    InitSQL();    // 打开数据库    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");    db.setDatabaseName("./lyshark.db");    if (!db.open())        return;    this->setCentralWidget(ui->tableView);    ui->tableView->setSelectionBehavior(QAbstractItemView::SelectItems);    ui->tableView->setSelectionMode(QAbstractItemView::SingleSelection);    ui->tableView->setAlternatingRowColors(true);    // 打开数据表    tabModel=new QSqlRelationalTableModel(this,DB);    tabModel->setTable("Student");                              // 设置数据表    tabModel->setEditStrategy(QSqlTableModel::OnManualSubmit);  // OnManualSubmit    tabModel->setSort(0,Qt::AscendinGorder);    tabModel->setHeaderData(0,Qt::Horizontal,"学号");    tabModel->setHeaderData(1,Qt::Horizontal,"姓名");    tabModel->setHeaderData(2,Qt::Horizontal,"学院");    // 设置代码字段的查询关系数据表    // 打开Departments表,关联ID和department    tabModel->setRelation(2,QSqlRelation("Departments","departID","department"));    theSelection=new QItemSelectionModel(tabModel);    ui->tableView->setModel(tabModel);    ui->tableView->setSelectionModel(theSelection);    ui->tableView->setItemDelegate(new QSqlRelationalDelegate(ui->tableView)); // 为关系型字段设置缺省代理组件    tabModel->select();                                                        // 打开数据表}MainWindow::~MainWindow(){    delete ui;}

最终绑定效果如下图:

C/C++ Qt数据库SqlRelationalTable关联表怎么使用

“C/c++ Qt数据库SqlRelationalTable关联表怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: C/C++ Qt数据库SqlRelationalTable关联表怎么使用

本文链接: https://www.lsjlt.com/news/301690.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C/C++ Qt数据库SqlRelationalTable关联表怎么使用
    本篇内容介绍了“C/C++ Qt数据库SqlRelationalTable关联表怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2023-06-22
  • C/C++ Qt数据库SqlRelationalTable关联表详解
    在上一篇博文中详细介绍了SqlTableModle组件是如何使用的,本篇博文将介绍SqlRelationalTable关联表组件,该组件其实是SqlTableModle组件的扩展类,...
    99+
    2024-04-02
  • c#怎么和数据库关联
    c# 通过以下步骤与数据库关联:安装数据访问提供程序创建连接字符串建立数据库连接执行数据库命令处理结果集或执行非查询命令 C# 如何与数据库关联 如何关联 C# 应用程序与数据库? 在...
    99+
    2024-05-11
    mysql c# 数据访问
  • C/C++ Qt 数据库与TableView实现多组件联动
    Qt 数据库组件与TableView组件实现联动,以下案例中实现了,当用户点击并选中TableView组件内的某一行时,我们通过该行中的name字段查询并将查询结果关联到ListVi...
    99+
    2024-04-02
  • C/C++中的Qt StandardItemModel数据模型怎么使用
    这篇文章主要讲解了“C/C++中的Qt StandardItemModel数据模型怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C/C++中的Qt Standar...
    99+
    2023-06-21
  • C/C++ Qt 数据库与ComBox实现多级联动示例代码
    Qt中的SQL数据库组件可以与ComBox组件形成多级联动效果,在日常开发中多级联动效果应用非常广泛,例如当我们选择指定用户时,我们让其在另一个ComBox组件中列举出该用户所维护的...
    99+
    2024-04-02
  • C/C++ Qt数据库与TableView实现多组件联动的方法是什么
    这篇文章主要讲解了“C/C++ Qt数据库与TableView实现多组件联动的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C/C++ Qt数据库与TableV...
    99+
    2023-06-21
  • C/C++ Qt数据库与SqlTableModel组件应用教程
    SqlTableModel 组件可以将数据库中的特定字段动态显示在TableView表格组件中,通常设置QSqlTableModel类的变量作为数据模型后就可以显示数据表内容,界面组...
    99+
    2024-04-02
  • C++ Qt QColorDialog怎么使用
    这篇文章主要介绍“C++ Qt QColorDialog怎么使用”,在日常操作中,相信很多人在C++ Qt QColorDialog怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法...
    99+
    2023-06-26
  • 如何分析C/C++ Qt数据库与SqlTableModel组件应用
    今天就跟大家聊聊有关如何分析C/C++ Qt数据库与SqlTableModel组件应用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。SqlTableModel 组件可以将数...
    99+
    2023-06-22
  • qt中怎么使用sqlite数据库
    在Qt中使用SQLite数据库,首先需要在项目中包含Qt的SQL模块,然后在代码中进行数据库的连接、查询等操作。 以下是使用SQLi...
    99+
    2024-04-09
    sqlite qt
  • C/C++ Qt StringListModel字符串列表映射组件怎么使用
    这篇文章主要介绍“C/C++ Qt StringListModel字符串列表映射组件怎么使用”,在日常操作中,相信很多人在C/C++ Qt StringListModel字符串列表映射组件怎么使用问题...
    99+
    2023-06-21
  • [Mysql | C++] C++中使用Mysql数据库
    目录 一、环境安装 二、环境配置  三、编写程序 一、环境安装 1.Mysql 8.0 2.Microsoft Visual Studio 2017 注意:vs2019版本及以下才支持Mysql,若使用高版本可以使用SQL Serve...
    99+
    2023-10-25
    mysql c++ 数据库
  • C/C++ Qt 数据库QSql增删改查组件应用教程
    Qt SQL模块是Qt中用来操作数据库的类,该类封装了各种SQL数据库接口,可以很方便的链接并使用,数据的获取也使用了典型的Model/View结构,通过MV结构映射我们可以实现数据...
    99+
    2024-04-02
  • C++内联函数inline与auto关键字怎么使用
    这篇文章主要介绍“C++内联函数inline与auto关键字怎么使用”,在日常操作中,相信很多人在C++内联函数inline与auto关键字怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++内联函数...
    99+
    2023-06-30
  • 怎么用C++实现数据库删除大表
    本篇内容介绍了“怎么用C++实现数据库删除大表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!背景:数据库的IO压力非常大,如果在线上删除大表...
    99+
    2023-06-03
  • C++的内联函数怎么使用
    本文小编为大家详细介绍“C++的内联函数怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++的内联函数怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、常量与宏回顾C++中的const常量可以替...
    99+
    2023-06-30
  • oracle怎么删除关联表数据
    要删除关联表数据,一般需要使用DELETE语句结合关联条件来实现。 例如,如果想删除表A中关联表B的数据,可以使用以下语句:...
    99+
    2024-04-09
    oracle
  • 怎么使用C/C++ QT的QChart绘制组件
    本篇内容主要讲解“怎么使用C/C++ QT的QChart绘制组件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用C/C++ QT的QChart绘制组件”吧!QtCharts 组件是QT中提...
    99+
    2023-06-25
  • C/C++ Qt数据库与TreeView组件绑定的方法是什么
    本篇内容主要讲解“C/C++ Qt数据库与TreeView组件绑定的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C/C++ Qt数据库与TreeView组件绑定的...
    99+
    2023-06-21
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作