Foxtable(狐表)用户栏目专家坐堂 → 如何写“包含”查询语句?


  共有4998人关注过本帖树形打印复制链接

主题:如何写“包含”查询语句?

帅哥哟,离线,有人找我吗?
gzdw
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:308 积分:3351 威望:0 精华:0 注册:2011/12/22 17:52:00
如何写“包含”查询语句?  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4760 积分:34608 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2014/3/2 21:25:00 [只看该作者]

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:308 积分:3351 威望:0 精华:0 注册:2011/12/22 17:52:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/3/2 21:32:00 [只看该作者]

 不可能,你是复制我的代码吗?我测试是可以的
[此贴子已经被作者于2014-3-2 21:31:54编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
gzdw
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:308 积分:3351 威望:0 精华:0 注册:2011/12/22 17:52:00
  发帖心情 Post By:2014/3/2 21:39:00 [只看该作者]

纠正,刚才我测试的是二楼语句,“有点甜”的语句的正确的。
谢谢二位。

 回到顶部