Setting value of parameter containing “ ' ” (apostrophe) used in LIKE query

前端 未结 3 995
盖世英雄少女心
盖世英雄少女心 2021-01-22 02:04

I have the following query in ASP.NET/C# code which is failing to return any values using a parameter...

select * from MyTable where MyTable.name LIKE @search
         


        
3条回答
  •  鱼传尺愫
    2021-01-22 02:52

    I think the issue is that you're escaping the quotes in your search parameter, when the SQL parameter does that for you.

    The percent signs should be inside the SQL Parameter value; your query just references the parameter plainly. The SQL should look like this:

    select * from MyTable where MyTable.name LIKE @search
    

    And the code should look like this:

    string search = "MyValue'ToSearchForWith'Quotes";
    myCmd.Parameters.AddWithValue("@search", "%" + search + "%");
    

    Note that search is the original value, not escaped.

提交回复
热议问题