以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何写“包含”查询语句?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=46979)

--  作者:gzdw
--  发布时间:2014/3/2 21:22:00
--  如何写“包含”查询语句?
目的:只要“到会人员”的姓名,已登记在“联系人”,则查询出“电话”。
以下语句只能查询“相同”姓名的“电话”
For Each dr1 As DataRow In DataTables("到会人员").DataRows
    Dim dr2 As DataRow = DataTables("联系人").Find("姓名=\'" & dr1("姓名") & "\'")
    If dr2 Is Nothing Then
        Dim Result As DialogResult
        Result = MessageBox.Show(dr1("姓名") & "在联系人中没找到,中止查询吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        If Result = DialogResult.Yes Then
            Return Nothing
        Else
            dr1("电话")= "没有找到电话号码"
        End If
    Else
        dr1("电话")= dr2("电话")
    End If
Next
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:y2287958
--  发布时间:2014/3/2 21:25:00
--  
Dim dr2 As DataRow = DataTables("联系人").Find("姓名 like \'%" & dr1("姓名") & "%\'")
[此贴子已经被作者于2014-3-2 21:28:59编辑过]

--  作者:有点甜
--  发布时间:2014/3/2 21:28:00
--  
 如下,如果要再精确一些,就这样 "姓名 = \'bb\' or 姓名 like \'bb,*\' or 姓名 like \'*,bb,*\' or 姓名 like \'*,bb\' "

For Each dr1 As DataRow In DataTables("到会人员").DataRows
    Dim dr2 As DataRow = DataTables("联系人").Find("姓名 like \'*" & dr1("姓名") & "*\'")
    If dr2 Is Nothing Then
        Dim Result As DialogResult
        Result = MessageBox.Show(dr1("姓名") & "在联系人中没找到,中止查询吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        If Result = DialogResult.Yes Then
            Return Nothing
        Else
            dr1("电话")= "没有找到电话号码"
        End If
    Else
        dr1("电话")= dr2("电话")
    End If
Next

--  作者:gzdw
--  发布时间:2014/3/2 21:31:00
--  
执行不正确。变成所有到会人员都找不到“电话”了

查帮助,“包含”是这样用的:

Contains

判断字符串是否包含一个给定的子字符串。

语法:

Contains(Value)

Value:给定的子字符串。

例如:

Dim Str1 As String = "I like foxtable"
If
Str1 > "" AndAlso Str1.Contains("like") Then
    Output.Show(
"Me too")
End If


不知道要达到我的目的,需要如何改?

[此贴子已经被作者于2014-3-2 21:36:14编辑过]

--  作者:有点甜
--  发布时间:2014/3/2 21:32:00
--  
 不可能,你是复制我的代码吗?我测试是可以的
[此贴子已经被作者于2014-3-2 21:31:54编辑过]

--  作者:gzdw
--  发布时间:2014/3/2 21:39:00
--  
纠正,刚才我测试的是二楼语句,“有点甜”的语句的正确的。
谢谢二位。