• 4235阅读
  • 1回复

sqlrecord的bug,我自己实在找不出来 [复制链接]

上一主题 下一主题
离线succulent
 
只看楼主 倒序阅读 楼主  发表于: 2008-11-20
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
一段简单的小程序
model是某数据库的一张表,假设包含A B C三个列
从第一行开始,逐行对  B列进行分析,如果B的值等于某常数bbb,那么改变C的值,并显示,否则继续分析下一行,源码如下
  for (int i = 0; i < model->rowCount(); i++) {
        QSqlRecord record =  model->record(i);
        if (record.value("B") == bbb)
        {
            record.setValue("C","ok");
            model->record(i) = record;
        } 
  }

郁闷的是,改动后的结果无法显示在tableview上,C还是那个C
我也有重新刷新,另外还做了个小测试,如果record.value("B") == bbb为true
那么把C要改变的那个值用setText显示在别的label中,一切都正常,证明有正确判断
但tableView就是不显示,气死了
请问我这段逻辑没错误吧,有可能错在什么地方
离线succulent
只看该作者 1楼 发表于: 2008-11-20
问题解决了,应该把这一句
model->record(i) = record;
改成
model->setRecord(i,record);

继续熟悉qt ing
快速回复
限100 字节
 
上一个 下一个