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

  介绍

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

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

void 主窗口:InitSQL ()   {   ,,,QSqlDatabase  db =, QSqlDatabase: addDatabase (“QSQLITE");   ,,,db.setDatabaseName (“。/lyshark.db");   ,,,if  (! db.open ())   ,,,,,,,,,,返回;      ,,,//,执行SQL创建表   ,,,db.exec (“DROP  TABLE  Student");   ,,,db.exec (“CREATE  TABLE  Student “   ,,,,,,,,,,,,,,,,,,“id  INTEGER  PRIMARY  KEY 自动增量,,,   ,,,,,,,,,,,,,,,,,,“name  VARCHAR (40), NOT 空,,,   ,,,,,,,,,,,,,,,,,,“departID  INTEGER  NOT 零)“;   ,,,,,,,,,,,);      ,,,//,逐条插入数据   ,,,db.exec (“INSERT  INTO 学生(姓名、departID),值(& # 39;zhangsan& # 39; 10)“);   ,,,db.exec (“INSERT  INTO 学生(姓名、departID),值(& # 39;lisi # 39;, 20)“);   ,,,db.exec (“INSERT  INTO 学生(姓名、departID),值(& # 39;wangwu& # 39;, 30)“);   ,,,db.exec (“INSERT  INTO 学生(姓名、departID),值(& # 39;wangmazi& # 39;, 40)“);      ,,,db.exec (“DROP  TABLE  Departments");   ,,,db.exec (“CREATE  TABLE 部门(“   ,,,,,,,,,,,“departID  INTEGER  NOT 空,“   ,,,,,,,,,,,“department  VARCHAR (40), NOT 零)“;   ,,,,,,,,,,,);      ,,,db.exec (“INSERT  INTO 部门(departID、部门),VALUES (10日& # 39;数学学院& # 39;)“);   ,,,db.exec (“INSERT  INTO 部门(departID、部门),VALUES (20日& # 39;物理学院& # 39;)“);   ,,,db.exec (“INSERT  INTO 部门(departID、部门),VALUES (30日& # 39;计算机学院& # 39;)“);   ,,,,   ,,,db.commit ();   ,,,db.close ();   }

初始化后将得到两张数据表,这两张表通过<代码> departID>

 C/c++ Qt数据库SqlRelationalTable关联表怎么使用“> </p> <p>创建完成后,我们在程序的构造函数直接实现绑定即可,这段代码很简单如下:</p> <pre类=//, https://www.cnblogs.com/lyshark   主窗口:主窗口(QWidget  *父母):,QMainWindow(父),ui (new  ui::主窗口)   {   ,,,ui→setupUi(这个);   ,,,InitSQL ();      ,,,//,打开数据库   ,,,QSqlDatabase  db =, QSqlDatabase: addDatabase (“QSQLITE");   ,,,db.setDatabaseName (“。/lyshark.db");   ,,,if  (! db.open ())   ,,,,,,,返回;      ,,,这个→setCentralWidget (ui→tableView);   ,,,ui→tableView→setSelectionBehavior (QAbstractItemView:: SelectItems);   ,,,ui→tableView→setSelectionMode (QAbstractItemView:: SingleSelection);   ,,,ui→tableView→setAlternatingRowColors(真正的);      ,,,//,打开数据表   ,,,tabModel=new  QSqlRelationalTableModel(这个,DB);   ,,,tabModel→可变的(“Student");,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,//,设置数据表   ,,,tabModel→setEditStrategy (QSqlTableModel:: OnManualSubmit);,,//OnManualSubmit   ,,,tabModel→setSort (0, Qt:: AscendingOrder);      ,,,tabModel→setHeaderData (0, Qt::水平,“学号“);   ,,,tabModel→setHeaderData (1, Qt::水平,“姓名“);   ,,,tabModel→setHeaderData (2, Qt::水平,“学院“);      ,,,//,设置代码字段的查询关系数据表   ,,,//,打开部门表、关联ID和部门   null   null   null   null   null   null   null   null   null   null   null   null   null   null

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