2013-08-14 3 views
0

내 데이터베이스의 사용자 테이블에 두 개의 레코드가 있습니다. 마지막 이름은 "تحصیلداری"및 "موقر"입니다.
내가sql 비 유니 코드 매개 변수를 유니 코드로 변환

select * from Person where Lastname like N'%ی%' 

정확히 내가 원하는 무엇 마지막 이름 반환에 포함 된 기록 "ی"문자를 사용하지만, 나는 약간의 변화를 필요로 할 때. 나는 %% 사이의 단어를 매개 변수로 사용해야합니다. 같은
뭔가 :

create procedure usp_GetPersonsWhoseNameContains(@LN nvarchar(50)) 
as 
begin 
    select * from Person where Lastname like N'%'[email protected]+'%' 
end 

declare @LastName nvarchar(50) = 'ی' 
exec usp_GetPersonsWhoseNameContains(@LastName) 

는하지만이 방법을 작동하지 않는, 내 검색에 내가 적절한 해결책을 찾을 수 없습니다. 사람이

+0

어떤 오류가 발생합니까? – Popeye

답변

1

시도하는 방법을 알고 있나요

create procedure usp_GetPersonsWhoseNameContains(@LN nvarchar(50)) 
as 
begin 
    select * from Person where Lastname like N'%'[email protected]+'%' 
end 

declare @LastName nvarchar(50) = N'ی' 
exec usp_GetPersonsWhoseNameContains(@LastName) 

은 아마 당신은 당신을 위해 DDL 스크립트를 생성 할 때 SQL 서버는 어떤 인용 문자열 입력에 N을 사용하는 것으로 나타났습니다.

+0

내 문제는 C# 응용 프로그램에서이 저장 프로 시저를 사용하고 거기에서 매개 변수를 채우고 AFAIK를 C# 응용 프로그램의 N 뒤에 넣을 수 없다는 것입니다. 어떻게해야합니까? –

+0

현재 전달하는 방법에 대한 코드를 제공 할 수 있습니까? SQL에서 여기에 넣어 매개 변수 전에 코드 측면에서 N 넣어보십시오. – Popeye

+0

정적 공개 목록 GetPersonContaining (문자열 단어) { PersonTableAdapter.GetPersonsWhoseNameContains (word); } –

관련 문제