qt中tablview,QT5中的TableView不显示MYSQL数据,仅显示空行

在QT5的应用程序开发中,遇到一个奇怪的现象:TABLEVIEW组件只显示表头,不显示数据。经过排查,发现问题是由于程序内多次连接数据库导致的。确保每个程序仅连接数据库一次,即可避免此问题。这提示我们在编程时要注意资源的管理和复用,避免不必要的连接操作。
摘要由CSDN通过智能技术生成

QT5中,TABLEVIEW只显示表头,不显示数据。网上很多没找到原因。

de7ac1ecac910b3abc04e6a0d166a0a0.png

 经过我的测试,发现原因是:在一个程序里面,多次连接数据库,导致的。每个程序,只调用一次连接数据库,则没有这种效果

Qt C++,你可以使用QSqlRelationalTableModel和QSqlTableModel来在同一个tableView显示不同的数据表。 QSqlTableModel用于显示单个数据表的数据。你可以使用setTable()方法设置要显示数据表,然后使用select()方法从数据库检索数据。例如: ```cpp QSqlTableModel *model = new QSqlTableModel(this); model->setTable("my_table"); model->select(); ui->tableView->setModel(model); ``` 要在同一个tableView显示多个数据表,你可以使用QSqlRelationalTableModel。QSqlRelationalTableModel可以显示多个相关联的数据表的数据。你可以使用setTable()方法设置要显示的主数据表,然后使用setRelation()方法将其他数据表与主数据表相关联。例如: ```cpp QSqlRelationalTableModel *model = new QSqlRelationalTableModel(this); model->setTable("orders"); model->setRelation(1, QSqlRelation("customers", "id", "name")); model->setRelation(2, QSqlRelation("products", "id", "name")); model->select(); ui->tableView->setModel(model); ``` 在此示例,orders表是主数据表,而customers和products表是相关联的数据表。setRelation()方法将customers表与orders表的customer_id列相关联,将products表与orders表的product_id列相关联。这样,tableView显示orders表数据,并且将customer_id和product_id列的值替换为相关联的表数据。 请注意,使用QSqlRelationalTableModel时,你需要在数据库设置外键约束来确保正确的关联。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值