QSqlRelationalTableModel中的QSqlRelationalDelegate显示外键而不是其值

时间:2015-07-16 16:54:14

标签: c++ sql sql-server qt

这是我的代码:

QSqlRelationalTableModel *model = new QSqlRelationalTableModel(this, db1);
model->setTable("syllabi");
model->setRelation(3, QSqlRelation("activity_types", "activity_type_id", "activity_type_name"));
model->select();
ui->tableView->setModel(model);
ui->tableView->setItemDelegate(new QSqlRelationalDelegate(ui->tableView));

组合框中的值显示正确,但是当我更改值并选择表的另一个单元格时,单元格显示ID(外键)而不是其值。 此外,当我使用此代码

插入另一个值时
model->insertRow(model->rowCount());
model->setData(model->index(model->rowCount()-1, 0), teacherName);

出现错误:

  

QODBCResult :: exec:无法执行语句:“[Microsoft] [ODBC SQL Server驱动程序] [SQL Server]将nvarchar值'default'转换为数据类型int时转换失败。”

表格没有正确加入?

修改

好的,现在当我在组合框中更改值时,它会删除整行。可能是什么原因?

表格:https://yadi.sk/i/ujL15zD_hupvz

0 个答案:

没有答案