복붙노트

[SQL] C #을 구성하는 매개 변수 쿼리의 SQL - LIKE %의

SQL

C #을 구성하는 매개 변수 쿼리의 SQL - LIKE %의

나는 LIKE %% 명령을 포함하는 쿼리에 대한 C #에서 매개 변수 쿼리에 대한 SQL을 구축을 위해 노력하고 있습니다.

여기에 내가 (데이터베이스가 파이어 버드입니다하시기 바랍니다 참고)를 달성하기 위해 노력하고있는 무슨이다

var SQL = string.format("SELECT * FROM {0} WHERE {1} LIKE '%?%'", TABLE, NAME);
 cmd.Parameters.AddWithValue(NAME, "JOHN");

지금은 작업에 매개 변수를 얻을 수있는 모든 단일 치환을 시도, 나는 시도했다;

나는 일에 LIKE 쿼리에 대한 매개 변수를 사용하는 방법, 작업이 얻을 수없는 것.

제안을 환영합니다!

해결법

  1. ==============================

    1.당신은 쿼리 문자열 리터럴의 내부 매개 변수를 가질 수 없습니다. 전체 값 매개 변수를 확인하고 문자열에 와일드 카드를 추가합니다 :

    당신은 쿼리 문자열 리터럴의 내부 매개 변수를 가질 수 없습니다. 전체 값 매개 변수를 확인하고 문자열에 와일드 카드를 추가합니다 :

    var SQL = string.format("SELECT * FROM {0} WHERE {1} LIKE ?", TABLE, NAME);
    Cmd.Parameters.AddWithValue(NAME, "%" + "JOHN" + "%");
    
  2. ==============================

    2.

    var SQL = string.Format("SELECT * FROM {0} WHERE {1} LIKE '%' + ? + '%'", TABLE, NAME);
    Cmd.CommandText = SQL;
    Cmd.Parameters.Add("?", SqlDbType.VarChar, 50).Value = "JOHN";
    
  3. ==============================

    3.이 일을 과거에는 단순히 확인 내가 SQL 주입 처리하는 물음표와 작은 따옴표를 교체하는 것이 만드는 SQL로 통합했습니다. 예 :

    이 일을 과거에는 단순히 확인 내가 SQL 주입 처리하는 물음표와 작은 따옴표를 교체하는 것이 만드는 SQL로 통합했습니다. 예 :

    var SQL = string.format("SELECT * FROM {0} WHERE {1} LIKE '%{2}%'",
      TABLE,
      NAME,
      JOHN.Replace("'","?"));
    
  4. from https://stackoverflow.com/questions/664314/c-sharp-constructing-parameter-query-sql-like by cc-by-sa and MIT license