关于QTableWidget插入数据库数据很慢的原因
2012-08-28 14:32
525 查看
一开我以为QTableWidget是因为数据量过大的原因导致的.因为有1000多条数据,还有6列.就1000*6,后来我测试发现时间都耽误在了insertRow()上,我恍然大悟,6000多条数据对于CPU来说也是小菜一碟啊.我估计是插入行的时候需要建表导致变慢,我索性把数据库中数据条数读出来,然后采取一次性插入,速度上确实提高了不少.以前在ARM板卡上运行要1-2分钟,现在只要几秒钟就OK了.此时你是否想知道代码是如何的?别急容我在啰嗦几句,其实用MVC的方式更加好,因为这样可以避免内存浪费.QTableView和QSqlTableModel是完美的配合.不过此方法我没有用.在这里只是记录下,防止下次碰到了,需要使用.下面是我的解决问题的方法.
int row=tableWidgettemp->rowCount(); QString strtemp; query.last(); int tablecount = query.at() + 1; tableWidgettemp->setRowCount(tablecount); query.first(); while(row < tablecount) { for(int i=0; i<=columnNum; i++) { strtemp = query.value(i).toString(); tableWidgettemp->setItem(row,i,new QTableWidgetItem(strtemp)); } row++; query.next(); } tableWidgettemp->selectRow(row-1);
相关文章推荐
- 关于从sql*plus中往数据库插入数据却查询不到的原因
- 关于数据库循环插入大量对象数据的解决办法
- java代码显示正确执行,但为何数据未成功插入数据库?原因如下
- Android 数据库插入数据总是失败的原因
- 关于若干数据库数据插入性能的对比分析
- 关于数据库插入数据出现乱码问题
- 关于Mysql数据库插入数据失败的原因
- 关于.net程序中读取不规则的excle表格中的数据,并插入到数据库的方法
- 【基础】关于Java向数据库中插入DateTime类型数据
- 关于如何将一个数据库中的表的数据插入另一个数据库中
- 关于java中向数据库中插入数据时,报错Caused by: java.lang.NullPointerException的问题
- 数据库中关于datetime、date 、time数据类型比较,及插入日期时间数据格式
- 关于若干数据库数据插入性能的对比
- 关于QTableWidget 表头设置无效的原因
- 关于数据库层面上锁,解决程序并发插入多条重复数据
- 关于事务开启与否对数据库插入数据所需时间的影响的讨论
- 关于数据库查询一个表中的数据插入到另一个表中
- C#关于向数据库中插入数据时,有不规则自增列的处理方法
- 关于事务开启与否对数据库插入数据所需时间的影响的讨论
- c#程序,插入数据库,数据库中没有数据的原因