注意除了actOpenDB和actQuit之外,其他Action的enabled属性取消
departID INT NOT NULL REFERENCES departments(departID)
注意学生表有个外键指向部门表的departid,还有个外键指向专业表的majorid
setRelation 是 QSqlRelationalTableModel 类中的一个方法,用于设置模型中某一列的关联关系。 以下是 setRelation 方法的简单说明:void QSqlRelationalTableModel::setRelation(int column, const QSqlRelation &relation 示例:QSqlRelationalTableModel model;model.setTable("orders");model.setRelation(2, QSqlRelation("customers setSelectionMode(QAbstractItemView::SingleSelection);ui->tableView->setAlternatingRowColors(true);打开数据表并设置模型创建一个 QSqlRelationalTableModel tabModel = new QSqlRelationalTableModel(this, db);tabModel->setTable("Student");tabModel->setEditStrategy
NewBee520/article/details/8247236 QSqlDatabase类实现了数据库连接的操作 QSqlQuery类用来执行SQL语句 QSqlRecord类封装数据库所有记录 QSqlRelationalTableModel ); //添加一行 model->setData(model->index(rowNum,0),id); //给新行添加id属性值 //model->submitAll(); //可以直接提交 QSqlRelationalTableModel Inherits QSqlQueryModel->Inherits QAbstractTableModel->Inherits QAbstractItemModel->Inherits 第五:QSqlRelationalTableModel setItemDelegate(new QSqlRelationalDelegate(ui->tableView)); QSqlRelationalDelegate类--提供委托delegate用来显示编辑QSqlRelationalTableModel
对文件系统进行封装 // QSqlQueryModel 对SQL的查询结果集进行封装 // QSqlTableModel 对SQL中的table进行封装 // QSqlRelationalTableModel
QAbstractItemView::SingleSelection); ui->tableView->setAlternatingRowColors(true); // 打开数据表 tabModel=new QSqlRelationalTableModel
:SingleSelection); ui->tableView->setAlternatingRowColors(true); // 打开数据表 tabModel=new QSqlRelationalTableModel
query.exec()) { qDebug() << "删除失败: " << query.lastError().text();}四、使用数据模型Qt5提供了QSqlTableModel和QSqlRelationalTableModel
数据库表和视图中的字段 QSqlIndex:用于操作和描述数据库索引的函数 QSqlQuery:执行和操作SQL语句的方法 QSqlQueryModel:SQL结果集的只读数据模型 QSqlRecord:封装数据库记录 QSqlRelationalTableModel
然后就可以使用QSqlQuery类来操作该数据库, QSqlQuery类使用的是SQL语句,如果只需要使用高层次的数据 库接口(不关心 SQL 语法),我们可以选择 QSqlTableModel 和 QSqlRelationalTableModel
QStandardItemModel:可以用于树结构的存储,提供了层次数据 QFileSystemModel:本地系统的文件和目录信息 QSqlQueryModel、QSqlTableModel、QSqlRelationalTableModel