• 7029阅读
  • 11回复

[提问]SQLite数据库如何更新显示? [复制链接]

上一主题 下一主题
离线tomtc123
 

只看楼主 倒序阅读 楼主  发表于: 2012-06-03

  用SQLite写了个小程序,添加、删除数据时,QTableView不能即时更新显示:(数据确定从数据库添加或删除了)


可以怎么样解决这个问题?谢谢解答。







工程文件 test.7z (3 K) 下载次数:35
离线XChinux

只看该作者 1楼 发表于: 2012-06-03
需要你自己进行更新的。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线lejcey

只看该作者 2楼 发表于: 2012-06-03
自己编程,就要自己去刷新
离线tomtc123

只看该作者 3楼 发表于: 2012-06-03
回 1楼(XChinux) 的帖子
....->update();?

在添加、删除数据后重新调用打开数据的函数还是不行……

谢谢。

离线tomtc123

只看该作者 4楼 发表于: 2012-06-03
回 2楼(lejcey) 的帖子


具体怎么刷新呢?
离线uidab

只看该作者 5楼 发表于: 2012-06-03
回 4楼(tomtc123) 的帖子
不知道你用的什么Model,如果是QSqlTableModel可以用submitAll()。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线tomtc123

只看该作者 6楼 发表于: 2012-06-03
回 5楼(uidab) 的帖子
用的是QSqlQueryModel,这个和QSqlTableModel区别很大吗?
离线uidab

只看该作者 7楼 发表于: 2012-06-03
有些区别, QSqlTableModel可以直接在View上修改,QSqlQueryModel我简单试了,不能在view上修改,也许需要进行其它设置吧。

Qt帮助里是这样的
QSqlQueryModel *model = new QSqlQueryModel;
     model->setQuery("SELECT name, salary FROM employee");
     model->setHeaderData(0, Qt::Horizontal, tr("Name"));
     model->setHeaderData(1, Qt::Horizontal, tr("Salary"));

     QTableView *view = new QTableView;
     view->setModel(model);
     view->show();
你在手动刷新的时候可以在model->setQuery("SELECT *  FROM employee");
然后在试试。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线tomtc123

只看该作者 8楼 发表于: 2012-06-03
回 7楼(uidab) 的帖子
还是不行,难道要
tableview->hideRow(int row);
好无奈~~~~
离线uidab

只看该作者 9楼 发表于: 2012-06-03
回 8楼(tomtc123) 的帖子
你再耐心查查资料,QSqlQueryModel 主要就是能方便执行SQL语句。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线jian1999jian

只看该作者 10楼 发表于: 2012-07-04
刷新的时候,是不是少一项
离线谭锡安
只看该作者 11楼 发表于: 2012-08-04
请问楼主实现了手动刷新这个功能了嘛~?··我用你的程序实现的时候说按键没有被声明,求解析···
快速回复
限100 字节
 
上一个 下一个