我在SQL波紋管SP:如何在sp參數前添加N?
create proc spGetValue(@Field nvarchar(20))
as
select * from ASI_TblWorkflow
where Caption = @Field
當我打電話SP這樣的:EXEC spGetValue @Field = 'مرحله' 它不返回任何記錄。但如果我在像N'مرحله'這樣的字符串之前使用N,它將返回所需的記錄。 我知道n是國家語言字符,但由於我的參數是Nvarchar,爲什麼我的價值之前需要N? 另外我從我的C#代碼中調用這個sp。我不能在我的字符串值之前加N。我如何添加N之前,我的參數內sp?!
''this''是一個varchar,惠斯特'N'this''類型爲nvarchar。當你將一個varchar字段賦值給一個nvarchar時,它被隱式轉換;大部分時間都很好。但是,當您使用unicode功能時,varchar將無法保存這些值,因此即使在將其轉換爲nvarchar之前,該信息也會丟失。不幸的是,系統無法確定您最初分配給的varchar應該是nvarchar;你必須告訴它。 – JohnLBevan
'N'將字符串聲明爲'NVARCHAR',你能否將參數從c#映射到'SqlDbType.NVarChar'? – Ric
我的參數是字符串。我找不到任何方法將字符串轉換爲SqlDbType.NVarChar。我有一些其他的SP與nvarchar參數和相同的波斯值,工作正常! –