0

모든 종류의 외국 문자를 포함하는 DB에서 용어를 가져옵니다. japanese characters 나 chinese가있을 때 용어를 일치시킬 수 없기 때문에 테이블에서 update 문을 실행할 수 없습니다..net의 텍스트 인코딩

sqlUpdate = "Update QueryData set LastSearchDate ='" & DateTime.Now.ToString & "'" & " 

where QueryTerms = '" & item & "'" 

항목은 검색어이며 japanese 인 경우를 제외하고는 다른 모든 문자에서 잘 작동합니다. 이제 SQL Server 2005에서 수행 한 경우 일치 항목을 찾기 위해 N을 검색어 앞에 붙여야합니다.

select * from QueryData where queryTerms =N'だしの素' 

내가 다음 쿼리를 실행하기 전에 그것을 인코딩 할 수 있습니다 또는이는 그물이있다 의 N에 해당되도록이 될 수있는 더 쉬운 방법을 .NET에서 문자열 인코딩을 확인하는 방법이 있나요 이것을 처리하는 것.

+0

데이터베이스의 인코딩은 무엇입니까? –

+0

queryterms에 대한 열은 nvarchar이고 데이터 정렬은 sql-latin1입니다. – vbNewbie

답변

2

여기서 매개 변수화 된 쿼리를 사용하면 SQL 주입 공격에 취약하지 않을뿐만 아니라 문제를 쉽게 분류 할 수 있습니다. 데이터 (쿼리 값)를 코드 (SQL)에서 멀리 두십시오. 모든 것을 문자열로 나타내지 않아도되므로 모든 문제를 피할 수 있습니다.

매개 변수가있는 쿼리를 사용하는 방법에 대한 예제는 SqlCommand.Parameters의 문서를 참조하십시오.

+0

답변이 없다는 것을 알았을 때 정확히 답을 얻지 만, "Jon에게이 것을 가져 가게 할 것"이라고 생각했습니다. – Bergius

+0

@Bergius : 언젠가는 누군가 언젠가는 이런 질문을 할 것입니다. (또는 매개 변수 전달 중 하나) * 나는 답장을하지 않기로 결정할 것입니다 *. 어쩌면 나는 밖으로 나가서 신선한 공기 또는 무언가를 따라 건너 뛸 것이다. 아마도 현명한 브로드 웨이 쇼를 노래하고, 지나가는 사람들에게 현대 생활의 족쇄를 던지면서 나와 함께하도록 장려 할 것이다. –

+0

저, 고마워요. 다시 게시 할게요. – vbNewbie