为什么数据库中【价格】字段(文本型)是空的,ISNULL(rs.fields("价格"))的结果却是FALSE
------解决方案--------------------------------------------------------
你的代码就说明你没理解ISNULL的用法,人家是要两个参数的:
http://database.51cto.com/art/201009/224323.htm
SQL中的ISNULL函数介绍
------解决方案--------------------------------------------------------
你有可能价格是" "空格,是不是char型的?
------解决方案--------------------------------------------------------
可以debug.print asc(rs![价格])看看ascii码是多少
------解决方案--------------------------------------------------------
估计你的数据库字段设置了默认值,默认是空字符
------解决方案--------------------------------------------------------
null和空,在视觉上是一样的。
如果你要判断,可以用:
len(r.fields(0).value & "")=0
如果是想取值,NULL时会报错,可以用:
s=r.fields(0).value & ""
------解决方案--------------------------------------------------------
那就说明记录当前字段是空串,但不是 Null。
------解决方案--------------------------------------------------------
估计不是NULL值,而是空格
------解决方案--------------------------------------------------------
为了容易理解,我们做一个假设:
你把一个字符串定义成如下的结构:
1 缓冲区的地址;
2 缓冲区的长度;
3 缓冲区。
你初始化时,将地址设为为一个无效值,将长度设置为 0.
读的时候,如果地址依然是无效值(没有实例化),那就是 NULL。也就是缓冲区不存在,还没有分配。通俗地说,你可以认为字符串还不存在。
如果缓冲区已经分配,长度是 0,那就是空串。你可以把他看成字符串值的一种特殊情况。
------解决方案--------------------------------------------------------
还有一种旁证的方法,你可以将此字段值赋给一个文本框的 Text 属性:
Text1 = rs.fields("价格")
如果报“非法使用 Null 值”错误,那就是 Null 了。
------解决方案--------------------------------------------------------
只是空串而已 ""
""不是null所以isnull为false