以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多条件查找时当其中一项为空则认为没有找到怎么办?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=145080)

--  作者:foxyuan
--  发布时间:2020/1/7 17:27:00
--  多条件查找时当其中一项为空则认为没有找到怎么办?
 导入excel数据,当多列比较,其中有一项没有数据,刚认为没有找到,会增加一行,如何解决?请高手帮助,谢谢。
如下,当“名”列没有内容,或是“单位”没有内容,或是“姓”列没有内容,导入时都会新增一行。

For n As Integer = 1 To Sheet.Rows.Count -1
            Dim bh As String = sheet(n,0).Text
            Dim xm As String = sheet(n,1).Text
            Dim dw As String = sheet(n,11).Text          
            Dim dr As DataRow = DataTables("手机通讯录").Find("姓 = \'" & bh & "\' and 名 =\'" & xm & "\' and 单位 =\'" & dw & "\'")
            If dr Is Nothing Then \'如果不存在同编号的订单
                 dr =  DataTables("手机通讯录").AddNew()
            End If
            For m As Integer = 0 To nms.Length - 1
                dr(nms(m)) = Sheet(n,m).Value
            Next
        Next


--  作者:有点蓝
--  发布时间:2020/1/7 17:50:00
--  
要实现什么效果?3项只要有一个有值就可以?

Dim dr As DataRow = DataTables("手机通讯录").Find("(姓 = \'" & bh & "\' or 姓 is null) and (名 =\'" & xm & "\' or 名  is null) and (单位 =\'" & dw & "\' or 单位  is null)")

--  作者:foxyuan
--  发布时间:2020/1/7 18:03:00
--  
就是想如果通讯录里这三列一致,无论有没有数据,就不要增加一行了。只要有一列不一致,就增加一行。
--  作者:foxyuan
--  发布时间:2020/1/7 18:06:00
--  
好象蓝老师这样可以了,谢谢。