我正在使用存储过程和DataContext将数据插入SQL Server数据库(ASP.NET 4 + SQL Server 2005数据库,GoDaddy托管)
但是在插入俄语文本后,我看到像这样的人 - '??????'
如果我插入常量文本,我正在使用以下构造 - N'russian_text'
,它可以正常工作。
当然,我需要使用变量作为过程参数但我不能使用它(例如 - N @ var失败)
虽然我在表格中使用了N字段(nvarchar
等)。
有谁知道哪里出错了?
答案 0 :(得分:2)
NVARCHAR变量声明为
DECLARE @var NVARCHAR(100)
SET @var = N'unicode text'
而不是DECLARE N @ var ...,SET N @ var
同样适用于程序和功能参数
CREATE PROCEDURE InsertUnicodeData( @data NVARCHAR(200) ) AS
....
答案 1 :(得分:1)
.net中的SqlParamter变量必须是SqlDbType.NVarChar类型。
现在他们是SqlDbType.VarChar
在sql server中你的@text需要是nvarchar(ColLength)