• 3942阅读
  • 2回复

对toString()的误解 [复制链接]

上一主题 下一主题
离线sundp
 

只看楼主 倒序阅读 楼主  发表于: 2009-04-06
执行语句query("select field from table"),假设表中field字段有空白值,也就是NULL,这时query.value(0).toString()的值应该是什么?
我想当然的以为是Empty,所用了if(query.value(0).toString().isEmpty())这样的判断。
结果却是错误的。
这个结果依赖于原始表的字段类型,如果原始表中的字段是字符类型,那这个判断成立,但我的原始表中字段类型是int,当字段的值是NULL时,query.value(0).toString()的值是“0”。
有人注意到这个细节吗?
人境结庐<http://sundp70.blog.163.com>心远地偏
离线chrisopal
只看该作者 1楼 发表于: 2009-04-06
query.value(0).isNull() 来判断是不是返回值为空,
而不能用query.value(0).toString().isEmpty()
因为这里query.value( int index )返回的是QVariant,具体的type确实是跟表里的字段类型一致的,然后可以来转为任何你想要的类型
离线sundp

只看该作者 2楼 发表于: 2009-04-06
查了 Qt Assistant ,还真是这么回事。我以前怎么没注意呢? ;)
谢了。
人境结庐<http://sundp70.blog.163.com>心远地偏
快速回复
限100 字节
 
上一个 下一个