原始日期:2015-08-20 18:01
今天开发项目时,遇到一个问题,经过自己不断尝试,终于找到了解决办法,于是赶紧记下来,不然过段时间可能又忘了呵呵,从而重蹈覆辙,浪费时间~
问题是这样的:在插入一条商品信息记录时,需要判读 剩余数量STCOUNT 这个属性的值。
1、如果数据为null,则需要将STCOUNT设为0再加上现有数量AVRACOUNT。
2、 如果AVRACOUNT以前有数据,则直接加上AVRACOUNT。
解决过程:
正常思路应该是:将STCOUNT数值查出来,然后判断是否为null,如果是,则设置值为0,再加上AVRACOUNT。如果不是,咋直接加上AVRACOUNT。
首先,我们使用QSqlQuery保存sql语句查询出的结果,再判断query.value(n),显然,这里需要转换数据类型,于是query.value(0).toInt()。但是当STCOUNT为null时,结果却不是0,也没法判断,好吧。。。
于是query.value(0).toString(),发现若数据为null,则qDebug() 输出"",也不是0。于是可以加个判断:
但是这样太麻烦。。。。呵呵,想必你该想到了,没错!用query.value(0).toString().toInt()
这样,当STCOUNT为null时,结果为0,我们甚至省去了将STCOUNT设置为0这一步,实现了当STCOUNT为null时就可以将现有数量AVRACOUNT加上0赋值个STCOUNT值,当然了如果不为null,现有数量AVRACOUNT直接加上原值在赋值即可。