以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]like的通配符  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=131097)

--  作者:swimmer01
--  发布时间:2019/2/16 13:54:00
--  [求助]like的通配符
老师:你好!
我有以下程序段:            
1:          Dim xt As String=Tables(_Sys_lsb2+"_Table1").Current("项目角色")
2:           cmd.CommandText = "S elect [姓名] FROM {xtb_Users} w here [项目角色] like \'%"& xt &"%\'"
3:           Dim Values = cmd.ExcuteValues
运行结果不对,不知是啥原因请指正!谢谢!!

--  作者:有点蓝
--  发布时间:2019/2/16 14:49:00
--  
msgbox("Select [姓名] FROM {xtb_Users} w here [项目角色] like \'%"& xt &"%\'") ‘完整sql内容是什么
--  作者:swimmer01
--  发布时间:2019/2/16 16:20:00
--  
cmd.C
If e.IsFocusCell Then \'如果是焦点单元格
    If e.Col.Name = "姓名" Then \'如果正在编辑的是"姓名"列
        If _XM_Ro="项目负责人" Then
            Dim xt As String=Tables(_Sys_lsb2+"_Table1").Current("项目角色")
            cmd.CommandText = "S elect [姓名] FROM {xtb_Users} w here [项目角色] like \'%"& xt &"%\'"
            Dim Values = cmd.ExcuteValues
            If values.count > 0 Then
                xt1=Values("姓名")
                DataTables(_Sys_lsb2+"_Table1").DataCols("姓名").ExtendType = ExtendTypeEnum.None
                Tables(_Sys_lsb2+"_Table1").Cols("姓名").ComboList = xt1
            End If
      End If
  End If
End If

--  作者:swimmer01
--  发布时间:2019/2/16 16:29:00
--  
msgbox(cmd.CommandText)
运行结果:
S elect [姓名] FROM {xtb_Users} w here [项目角色] like \'%项目经理%\'
感觉没问题,但查询结果只出来数据库中最前面的一个人

--  作者:有点蓝
--  发布时间:2019/2/16 17:46:00
--  
多个人?不要使用ExcuteValues,使用ExecuteReader

ExcuteValues只能获取一行数据的多个列值,而不是获取多行数据

--  作者:swimmer01
--  发布时间:2019/2/16 17:56:00
--  
好,解决了,谢谢老师!