【问题标题】:LIKE Statement troubleLIKE 语句麻烦
【发布时间】:2010-01-08 19:13:07
【问题描述】:

我在 VB 2008 中使用 TableAdapter 和 LIKE 语句时遇到了一些问题。我想使用部分拼写来搜索名称。当我运行应用程序时,什么都没有返回。

这是我的 SQL:

SELECT        MEMBERS.RolodexID, MEMBERS.FirstName, MEMBERS.LastName, MEMBERS.address, MEMBERS.Address2, MEMBERS.City, MEMBERS.State, 
                         MEMBERS.Zip, MEMBERS.AreaCode1, MEMBERS.LocalNumber1, MEMBERS.AreaCode2, MEMBERS.LocalNumber2, MEMBERS.AreaCode3, 
                         MEMBERS.LocalNumber3, Member_Employers.Department, Member_Employers.Job_Class, EMPLOYER.NAME, MEMBERS.Industry, 
                         EMPLOYER.CODE
FROM            EMPLOYER INNER JOIN
                         Member_Employers ON EMPLOYER.CODE = Member_Employers.Employer_Code INNER JOIN
                         MEMBERS AS MEMBERS ON Member_Employers.Rolodexid = MEMBERS.RolodexID
WHERE        (MEMBERS.LastName like ?)

这是我的 VB 代码:

DIM LastName as String

LastName = me.txt_LastName.text

Me.MEMBERSTableAdapter.FillBy(DataSet1.MEMBERS, LastName)

我尝试了其他几个代码,包括:

LastName = "'" & me.txt_LastName.text & "%'"

LastName = me.txt_LastName.text & "%"

请帮忙!

【问题讨论】:

    标签: sql visual-studio-2008 sql-like tableadapter


    【解决方案1】:

    你的 Where 子句应该是

    WHERE        (MEMBERS.LastName like '%searchValue%') 
    

    如果您想在姓氏字段中的任何位置搜索 searchValue。

    【讨论】:

    • 我认为这行不通,参数化查询会为您加上引号。所以你最终会得到类似'%'sam'%'
    【解决方案2】:

    LastName = "%"+me.txt_LastName.text+"%" 是你想要的。

    请注意缺少单引号。我知道这很愚蠢,但它就是这样工作的。

    【讨论】:

      猜你喜欢
      • 2020-02-12
      • 1970-01-01
      • 1970-01-01
      • 2014-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多