Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共7 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:查找空值

1楼
edisontsui 发表于:2025/3/19 7:42:00
Dim drf1 As DataRow = DataTables("出入库C").SQLFind("物料编号 = " & "'" & e.DataRow("物料编号") & "' and YNS > " & "'" & "" & "' and _identify <>" & e.DataRow("_identify"), "录入时间 Desc")
老师,上面这段代码我是希望找到 YNS 不为空值的数据行,现在有几个问题请教:
1、红色那部分代码改为 YNS is not null, 其效果是不是一样的?
2、Find 这个词改为 SQL 的话,就找不到本应存在的数据行,那是不是有了红色那节代码,就不能用 SQLfind,只能用 Find 了 ?
3、如果还是希望用SQLFind, 那要怎样修改红色那部分代码?
谢谢。
2楼
有点蓝 发表于:2025/3/19 8:52:00
1、不一样,两个单引号中间没有东西表示空字符串,空字符串也是一种值,不是空值

2、和红色代码没有关系。find只查询已经加载的数据,sqlfind只程查询后台已经保存的数据:http://www.foxtable.com/webhelp/topics/2902.htm

3、使用is not null
3楼
edisontsui 发表于:2025/3/19 10:23:00
3. 我测试过了, 如果用 SQLfind, 即使用 is not null, 也找不到应有的数据行。而 如果只用 find 的话,就可以找到应有的数据行。
4楼
有点蓝 发表于:2025/3/19 10:33:00
只能说明
1、需要查询的数据没有保存
2、后台没有符合条件的数据
5楼
edisontsui 发表于:2025/4/23 15:21:00
Dim n5 As Integer = Tables(tx3.value).DataTable.GetValues(lm, "[筛选标记] =  '" & st1 & "' and '" & lm & "' <> '" & "" & "' ").count
Dim n5 As Integer = Tables(tx3.value).DataTable.GetValues(lm, "[筛选标记] =  '" & st1 & "' and '" & lm & "' Is Not Null").count
老师,上面两句代码的目的都是要排除列名 lm (是一串字符串,比如 “开料代号”) 为空值的数据,但是实际计算结果,哪怕 “开料代号” 没有任何数据, n5 都是 1,这样的结果肯定不符合我的要求.请问还有什么方法可以排除空值吗?谢谢。
6楼
有点蓝 发表于:2025/4/23 16:07:00
列名不需要单引号,列名右边的字符串值才需要单引号

Dim n5 As Integer = Tables(tx3.value).DataTable.GetValues(lm, "[筛选标记] =  '" & st1 & "' and " & lm & " Is Not Null").count

学会调试看实际的条件,下面有什么区别?

msgbox("[筛选标记] =  '" & st1 & "' and '" & lm & "' Is Not Null")
msgbox("[筛选标记] =  '" & st1 & "' and " & lm & " Is Not Null")
7楼
edisontsui 发表于:2025/4/23 16:51:00
谢谢。
共7 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .06348 s, 2 queries.