现象:

最近使用到QSqlTableModel与QTableView,其中使用setData函数后发现数据库并没有更新,

原因:

经过仔细排查发现,是因为在程序中用到了显示一部分列,而所显示的列中没有包含主键列,所以更新数据库无效,

解决方法:

显示一部分列时采用了重写QSqlTableModel类中的相关函数,然后调用

tableModal->SetSelectColQuery("select name, from table");
tableModal->select();
来实现,具体方法可以百度一下,此时将第一个语句改为:
tableModal->SetSelectColQuery("select name, id from table");
即在其中包含主键id即可。
如果不希望显示包含主键的列,则可以在数据表中不设置主键。
 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-15
  • 2022-12-23
  • 2021-08-06
  • 2022-12-23
  • 2021-10-04
  • 2021-10-02
猜你喜欢
  • 2022-12-23
  • 2021-06-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-27
  • 2021-04-27
相关资源
相似解决方案