我想将参数传递给带有N前缀的sp来解决外语字符被识别为???的问题,我不能直接把N @ test,尝试不同的方法没有运气。
我有一个aspx.cs代码文件,我调用了sp,我想做类似以下的事情:
DECLARE @test NVARCHAR = 'N"★ "'
create table test (abc nvarchar)
insert into test values (@test)
select * from test
上面的代码只是一个例子,我将值传递给.NET中的参数,我该怎么做?
答案 0 :(得分:1)
您不需要N前缀。您可以将参数类型指定为SqlDbType.NVarChar
以及大小。 .Net将负责保留文本编码。
var foo = new SqlParameter("@test ", SqlDbType.NVarChar, 30)
答案 1 :(得分:1)
N
前缀表示您的字符串位于UNICODE中。
当您将变量声明为NVARCHAR
时,它已经是UNICODE。
因此,您在变量的开头不需要这个N
直线。