以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 空值疑问 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=176112) |
||||
-- 作者:michl -- 发布时间:2022/3/31 10:02:00 -- 空值疑问 表A,表B两表中编号列字符相同,规格列同为空 Dim r As Row ..表A Dim br As Row ..表B Output.Show(r("编号") = br("编号")) Output.Show(r("规格") = br("规格")) 都显示为True Dim drs As List(of DataRow) = DataTables("表B").Select("编号 = \'" & r("编号") & "\' and 规格 = \'" & r("规格") & "\'") drs.count = 0 明明两个条件都成立,为什么查询不到呢?代码应该怎么写
|
||||
-- 作者:有点蓝 -- 发布时间:2022/3/31 10:06:00 -- 空值要另外处理 if r.isnull("规格") then Dim drs As List(of DataRow) = DataTables("表B").Select("编号 = \'" & r("编号") & "\' and 规格 is null\'") else Dim drs As List(of DataRow) = DataTables("表B").Select("编号 = \'" & r("编号") & "\' and 规格 = \'" & r("规格") & "\'") endif
|
||||
-- 作者:michl -- 发布时间:2022/3/31 10:50:00 -- 接上面,用表B生成统计表后,编号、规格分组列都变成了备注型,再用统计表数据继续查询表B时 dim xr as row ..\'统计表中行 此时 xr.isnull("规格") =false ,下面代码也就不对了,应该怎么处理呢 Dim drs As List(of DataRow) = DataTables("表B").Select("编号 = \'" & xr("编号") & "\' and 规格 is null")
|
||||
-- 作者:有点蓝 -- 发布时间:2022/3/31 11:00:00 -- if r.isnull("规格") then "规格"为空的用法 Dim drs As List(of DataRow) = DataTables("表B").Select("编号 = \'" & r("编号") & "\' and 规格 is null\'") else "规格"不为空的用法 Dim drs As List(of DataRow) = DataTables("表B").Select("编号 = \'" & r("编号") & "\' and 规格 = \'" & r("规格") & "\'") endif 如果不知道if else是干嘛用的,学一下编程基础:http://www.foxtable.com/webhelp/topics/0223.htm
|
||||
-- 作者:michl -- 发布时间:2022/3/31 11:21:00 -- 老师,上一个问题是用交叉统计后分组列"规格"变成了备注型,不知是不是跟列类型有关系。 在生成的统计表中xr("规格")显示是空的,但xr.isnull("规格")却返回false。 |
||||
-- 作者:有点蓝 -- 发布时间:2022/3/31 11:24:00 -- 请上传实例说明 |
||||
-- 作者:michl -- 发布时间:2022/3/31 11:54:00 --
|
||||
-- 作者:有点蓝 -- 发布时间:2022/3/31 13:57:00 --
|
||||
-- 作者:michl -- 发布时间:2022/3/31 15:19:00 -- 谢谢老师更正。貌似可以理解为备注型不存在is null,直接if dr("规格") <> ""即可 |
||||
-- 作者:有点蓝 -- 发布时间:2022/3/31 15:41:00 -- 和备注型这个类型本身没有什么关系,而是生成统计表的过程中,因为统计计算的原因,空值处理成了空字符串 |