无法将俄语文本插入SQL Server 2005 db

时间:2010-11-09 23:58:51

标签: asp.net database sql-server-2005 linq-to-sql encoding

我正在使用存储过程和DataContext将数据插入SQL Server数据库(ASP.NET 4 + SQL Server 2005数据库,GoDaddy托管)

但是在插入俄语文本后,我看到像这样的人 - '??????'

如果我插入常量文本,我正在使用以下构造 - N'russian_text',它可以正常工作。

当然,我需要使用变量作为过程参数但我不能使用它(例如 - N @ var失败)

虽然我在表格中使用了N字段(nvarchar等)。

有谁知道哪里出错了?

2 个答案:

答案 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)