2012-02-28 5 views
3

샘플 코드 :일치하는 텍스트 문자열

Dim sql As String = "SELECT * FROM " + tblName + " WHERE needsTranslation = 'True' AND dataText LIKE " & "'" & alpha & "%" & "'" & " ORDER BY dataText;" 
da = New SqlDataAdapter(sql, strConnection) 

OP : 내가 문자열의 첫 번째 문자 내 변수와 일치 할 때 모든 레코드를 반환하는 SQL 쿼리를 생성하고 싶습니다. 나는 vb.net에서 ASP.net 코드의 뒤에 이것을 코딩하고있다. 이 exmample의은 textData에서

SELECT * FROM " + tblName + " WHERE textData = ' & alpha & " 

텍스트와 알파의 문자열

내가 대소 문자를 구별 할 기준이 필요하지 않습니다 Z.

을 통해 Z 또는 A를 통해 단일 문자입니다,하지만 난 필요합니까 알파에 매치하는 textData의 최초의 문자뿐입니다.

필자는 LIKE 비교기를 테스트했으며 알파로 시작하는 모든 레코드를 반환하지 않습니다.

가장 좋은 방법은 무엇입니까? 모든 도움을 주시면 감사하겠습니다.

다시 한번 감사,

+2

이 정확히 무엇을 당신이 우리에게 작동하지 않았다'LIKE'하여 쿼리를 보여줄 수 – kaj

+0

작동합니다 때문에 LIKE 작동하지 않았다 SQL을 알려주세요? – Ryan

+0

쿼리와 일치해야하는 몇 가지 예제 문자열과 일치하지 않아야하는 몇 가지 예제를 제공 할 수 있습니까? – pete

답변

7

LIKE 연산자를 사용하면 사용하고자하는 것입니다 것입니다,하지만 당신은 지금처럼 % 와일드 카드 문자를 사용할 수 있습니다

SELECT * FROM MyTable WHERE textData LIKE 'a%' 
+0

Substring 연산자를 사용하여 테스트를 시작했습니다. 다시 LIKE로 전환하고 곧 resutls를 업데이트 할 것입니다. 답장을 보내 주셔서 감사합니다. – htm11h

+0

VB.net에서 코드를 작성하는 방법을 파악하려고합니다. – htm11h

+0

OP에서 현재 코드가 업데이트되고 알파 변수 값에 잘못된 열 이름이 반환됩니다. – htm11h

2

SQL은 (하위 문자열 연산자 SUBSTR있다) 또는 SUBSTRING()

select * from tableName 여기서 substr (textData) in ('A', 'B', 'C', ...);

0

다른 게시물 중 하나에 덧글을 추가 할 수 없지만 이러한 이유로 매개 변수화 된 쿼리를 사용해야 할 필요가 있습니다. (와일드 카드 %와 같은 연산자를 사용할 수 있습니다. 다른 대답은 정확하게) 귀하의 질문에 대답하기 위해 요약 : 그것은 사용자가 그들을 (가) 쿼리에 오류가 발생합니다 포함하는 검색 문자열을 입력 특히, 작은 따옴표와 실수에서 당신을 보호 할 것입니다

  1. .

  2. SQL 인젝션 공격으로부터 당신을 보호합니다. 예를 들어, 사용자가 위의 예에서 변수 "alpha"의 값을 입력 할 수있는 경우 다음과 같이 입력 할 수 있습니다.

    '; 보낸 사람 삭제;

    사용하던 사용자가 과도한 데이터베이스 권한을 가지고 있다면, 그들은 수 과시 혼란의 모든 종류 (또는 잠재적으로 데이터에 대한 액세스를 얻을 수 그들이에 액세스 할 필요는 없습니다).

+0

알 수 있지만이 경우 알파 값만 사용할 수있는 하드 코딩 된 알파 문자가 있습니다. – htm11h

관련 문제