C# 매개 변수 구성 쿼리 SQL -Like %
-
21-08-2019 - |
문제
나는 c#의 매개 변수 쿼리 용 SQL을 LIKE %%
명령.
다음은 제가 달성하려는 내용입니다 (데이터베이스는 Firebird입니다)
var SQL = string.format("SELECT * FROM {0} WHERE {1} LIKE '%?%'", TABLE, NAME);
cmd.Parameters.AddWithValue(NAME, "JOHN");
이제 매개 변수가 작동하기 위해 모든 단일 순열을 시도했습니다.
추가
%
매개 변수의 문자,cmd.Parameters.AddWithValue(NAME, "%" + "JOHN" + "%");
또는
cmd.Parameters.AddWithValue(NAME, "'%" + "JOHN" + "%'");
이 작업을 수행 할 수없는 것 같습니다. 유사한 쿼리가 작동하는 매개 변수를 어떻게 사용할 수 있습니까?
제안을 환영합니다!
해결책
쿼리에 문자열 리터럴 내부에 매개 변수가 없을 수 없습니다. 전체 값을 매개 변수로 만들고 와일드 카드를 문자열에 추가하십시오.
var SQL = string.format("SELECT * FROM {0} WHERE {1} LIKE ?", TABLE, NAME);
Cmd.Parameters.AddWithValue(NAME, "%" + "JOHN" + "%");
다른 팁
var SQL = string.Format("SELECT * FROM {0} WHERE {1} LIKE '%' + ? + '%'", TABLE, NAME);
Cmd.CommandText = SQL;
Cmd.Parameters.Add("?", SqlDbType.VarChar, 50).Value = "JOHN";
과거 에이 작업을 수행 할 때, 나는 단순히 SQL에 통합하여 단일 따옴표를 물음표로 바꾸어 SQL 주입을 처리해야합니다. 예 :
var SQL = string.format("SELECT * FROM {0} WHERE {1} LIKE '%{2}%'",
TABLE,
NAME,
JOHN.Replace("'","?"));
제휴하지 않습니다 StackOverflow