You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt无法将SQL数据库内容显示在TableView,代码无报错求助

解决TableView显示为空的问题
  • 绑定正确的数据库连接:你打开的db是外部对象,QSqlTableModel默认会用系统默认的数据库连接,大概率和你打开的不是同一个,必须手动绑定:
    currentCV.setDatabase(*db);
    
  • 执行查询加载数据:光设置表名没用,必须调用select()才能从数据库拉取数据到模型里:
    currentCV.select();
    
  • 避免模型对象提前销毁:currentCV是if代码块里的栈变量,代码执行完这个块,对象就会被销毁,TableView自然没数据。改成堆分配或者把对象移到外部作用域:
    QSqlTableModel *currentCV = new QSqlTableModel(this); // 用this做父对象,自动管理内存
    

修正后的完整代码示例:

if(db->open())
{
    QSqlTableModel *currentCV = new QSqlTableModel(this);
    currentCV->setDatabase(*db);
    currentCV->setTable("employee_skills");
    // 可以加个判断,看看select是否成功
    if(currentCV->select()){
        QTableView *view = new QTableView;
        view->setModel(currentCV);
        view->show();
    } else {
        qInfo() << currentCV->lastError();
    }
}

最后再排查下:确认employee_skills表本身有数据,以及db的连接参数(比如路径、账号)都正确,有时候空表也可能是真的没数据。

内容的提问来源于stack exchange,提问作者user20324932

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 10:25:25