QSqlRelation is not working

QSqlRelation is not working

本文关键字:working not is QSqlRelation      更新时间:2023-10-16

下面是我的代码:

QSqlRelationalTableModel *model = new QSqlRelationalTableModel(this, db1);
model->setTable("syllabi");
model->select();
model->setRelation(0, QSqlRelation("teacher_id", "teachers", "teacher_name"));
ui->tableView->setModel(model);
qDebug() << model->lastError();

我试图用'teachers'表中的teacher_name替换teacher_id列,但它仍然显示了teacher_id列。调试显示如下:

QSqlError(", ", ")

列信息:https://i.stack.imgur.com/WP83F.png

try

model->setRelation(0, QSqlRelation("teachers", "teacher_id", "teacher_name"));
model->select();
select() after setRealation()

文档说明:

QSqlRelation::QSqlRelation(const QString &tableName, const QString &indexColumn, const QString &displayColumn)

构造一个QSqlRelation对象,其中tableName是外键引用的SQL表名,indexColumn是外键,displayColumn是应该呈现给用户的字段。

所以你似乎混淆了字符串参数的顺序,它应该是:
model->setRelation(0, QSqlRelation("teachers", "teacher_id" "teacher_name"));