[SQL] 어떻게? 매개 변수 및 LIKE 문 SQL
SQL어떻게? 매개 변수 및 LIKE 문 SQL
내가 검색 기능을 쓰고 있어요, 그리고 방지하기 위해 매개 변수를 사용하여이 쿼리의 최대 생각, 또는 적어도 한도에서, SQL 주입 공격. 그러나, 나는 내 프로그램을 통해 그것을 실행할 때 그것은 아무것도 반환하지 않습니다
compliance_corner SELECT * FROM WHERE (몸 LIKE '% @ 쿼리 %') OR (제목 LIKE '% @ 쿼리 %')
매개 변수는 다음과 같이 사용할 수 있습니까? 또는를 같이 인스턴스에서만 유효합니다 :
본체 LIKE '% <문자열> %'(<문자열>의 검색 목적) compliance_corner FROM SELECT *.
편집 : 나는 그 구문 너희들에 미치는 영향이 있습니까 기여, VB.NET이 함수를 건설하고있다?
또한, 나는이 SQL Server의 문 실행 : compliance_corner SELECT * FROM을 WHERE (몸 LIKE '% 최대 %') OR (% 최대 % LIKE 제목 ')'와 그 결과를 반환합니다.
해결법
-
==============================
1.시각적 기본 코드는 다음과 같이 보일 것이다 :
시각적 기본 코드는 다음과 같이 보일 것이다 :
Dim cmd as New SqlCommand("SELECT * FROM compliance_corner WHERE (body LIKE '%' + @query + '%') OR (title LIKE '%' + @query + '%')") cmd.Parameters.Add("@query", searchString)
-
==============================
2.글쎄, 난 갈 것입니다 :
글쎄, 난 갈 것입니다 :
Dim cmd as New SqlCommand( "SELECT * FROM compliance_corner"_ + " WHERE (body LIKE @query )"_ + " OR (title LIKE @query)") cmd.Parameters.Add("@query", "%" +searchString +"%")
-
==============================
3.너가해야되는:
너가해야되는:
LIKE '%'+ @param + '%'
-
==============================
4.당신은 예컨대 당신의 매개 변수와 % 표지판을 연결 할 수 있습니다 :
당신은 예컨대 당신의 매개 변수와 % 표지판을 연결 할 수 있습니다 :
LIKE '%'|| @query || '%'
편집하다: 사실, 그것은 전혀 이해가되지 않을 수도 있습니다. 나는이 문제를 오해있을 수 있습니다 생각합니다.
-
==============================
5.당신은 당신이 MS SQL / Access에서 그것을 실행할 때와 같이 VB에서 쿼리를 실행 때로는 자리 표시 자 %로 사용되는 기호는 동일하지 않습니다. *에 %에서 자리 표시 기호를 변경해보십시오. 그 힘 작동합니다. 디버깅 및 테스트하기 위해 MS SQL 또는 Access에서 직접 SQL 문자열을 복사 할 경우, 실제로 값을 반환을 위해 MS SQL 또는 Access에서 %로 기호 등을 변경해야 할 수도 있습니다.
당신은 당신이 MS SQL / Access에서 그것을 실행할 때와 같이 VB에서 쿼리를 실행 때로는 자리 표시 자 %로 사용되는 기호는 동일하지 않습니다. *에 %에서 자리 표시 기호를 변경해보십시오. 그 힘 작동합니다. 디버깅 및 테스트하기 위해 MS SQL 또는 Access에서 직접 SQL 문자열을 복사 할 경우, 실제로 값을 반환을 위해 MS SQL 또는 Access에서 %로 기호 등을 변경해야 할 수도 있습니다.
도움이 되었기를 바랍니다
-
==============================
6.이 방법을 시도
이 방법을 시도
Dim cmd as New SqlCommand("SELECT * FROM compliance_corner WHERE (body LIKE CONCAT('%',@query,'%') OR title LIKE CONCAT('%',@query,'%') )") cmd.Parameters.Add("@query", searchString) cmd.ExecuteNonQuery()
대신 +의 중고 CONCAT
from https://stackoverflow.com/questions/251276/howto-parameters-and-like-statement-sql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL 여러 테이블에 LINQ는 외부 조인 왼쪽 (0) | 2020.04.10 |
---|---|
[SQL] 절은 같은 왼쪽에 일치하지 않는 WHERE 왼쪽이에 조건 가입 할 때 ON에 왜와 가입? [복제] (0) | 2020.04.10 |
[SQL] 우리는 두 개의 서로 다른 데이터베이스 테이블에 가입 할 수 있습니까? (0) | 2020.04.10 |
[SQL] VARCHAR에 캐스트 INT (0) | 2020.04.10 |
[SQL] 어떻게 2005 SQL Server의 쉼표로 구분 된 목록으로 여러 행을 결합 할 수 있습니다? (0) | 2020.04.10 |