以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  表数据空值的比较  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=87625)

--  作者:chen3728060
--  发布时间:2016/7/15 10:31:00
--  表数据空值的比较

我想找出重复的值,为啥下面空值的没办法比较?

 


图片点击可在新窗口打开查看此主题相关图片如下:3.jpg
图片点击可在新窗口打开查看

图中最后2行都是空值,是重复的,应该提示才对,但是不提示

 


图片点击可在新窗口打开查看此主题相关图片如下:4.jpg
图片点击可在新窗口打开查看

不空值,2个56,就能找出重复。

 

我的列是字符串列。
代码如下


Dim t As Table = Tables("LSDeliverInDetail")
For i As Integer =0 To t.Rows.Count -1
    Dim r1 As Row = t.Rows(i)
    Dim cf As Integer = t.FindRow("LSRingSizeID = \'" & r1("LSRingSizeID") & "\'",i+1 ,False )
    If cf > 0 Then
        t.Position = cf
        MessageBox.show("第" & (i+1) & "行产品与第" & (cf+1) & "行产品重复!请修改")
         
    End If
Next

[此贴子已经被作者于2016/7/15 10:32:54编辑过]

--  作者:Hyphen
--  发布时间:2016/7/15 12:06:00
--  
Dim t As Table = Tables("LSDeliverInDetail")
For i As Integer =0 To t.Rows.Count -1
    Dim r1 As Row = t.Rows(i)
    Dim cf As Integer = 0
    If r1.IsNull("LSRingSizeID") OrElse r1("LSRingSizeID") = "" Then
        cf = t.FindRow("LSRingSizeID is null or LSRingSizeID=\'\'",i+1 ,False )
    Else
        cf = t.FindRow("LSRingSizeID = \'" & r1("LSRingSizeID") & "\'",i+1 ,False )
    End If
    If cf > 0 Then
        t.Position = cf
        MessageBox.show("第" & (i+1) & "行产品与第" & (cf+1) & "行产品重复!请修改")
        
    End If
Next

--  作者:chen3728060
--  发布时间:2016/7/16 10:54:00
--  

鉴于 空值  经常不参与运算,我还是把没数据的内容设置为  “无” 的字符串,这样方便比较