Asp.net 无法将俄语文本插入SQL server 2005数据库

Asp.net 无法将俄语文本插入SQL server 2005数据库,asp.net,database,sql-server-2005,linq-to-sql,encoding,Asp.net,Database,Sql Server 2005,Linq To Sql,Encoding,我正在使用存储过程和DataContext将数据插入SQL Server数据库(ASP.NET 4+SQL Server 2005数据库,GoDaddy主机) 但插入俄语文本后,我看到smth是这样的-“???????” 如果我插入常量文本,我使用的是以下结构-N'russian_text',效果很好 当然,我需要使用变量作为过程参数,但我不能使用它(例如-N@var失败) 尽管我在表中使用了N型字段(nvarchar等) 有人知道哪里出错了吗?您在.net中的SqlParameter变量必须是

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

但插入俄语文本后,我看到smth是这样的-“???????”

如果我插入常量文本,我使用的是以下结构-
N'russian_text'
,效果很好

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

尽管我在表中使用了N型字段(
nvarchar
等)


有人知道哪里出错了吗?

您在.net中的SqlParameter变量必须是SqlDbType.NVarChar类型。
现在它们是SqlDbType.VarChar。

在sql server中,您的@text需要是nvarchar(ColLength)

您在.net中的SQLParameter变量需要是SqlDbType.nvarchar类型。
现在它们是SqlDbType.VarChar。

在sql server中,@text必须是nvarchar(ColLength)

nvarchar变量声明为

DECLARE @var NVARCHAR(100)
SET @var = N'unicode text'
而不是像我宣布的那样N@var...设置N@var

这同样适用于程序和功能参数

CREATE PROCEDURE InsertUnicodeData( @data NVARCHAR(200) ) AS
....

NVARCHAR变量声明为

DECLARE @var NVARCHAR(100)
SET @var = N'unicode text'
而不是像我宣布的那样N@var...设置N@var

这同样适用于程序和功能参数

CREATE PROCEDURE InsertUnicodeData( @data NVARCHAR(200) ) AS
....

我只需要刷新dbml文件中的过程。无论如何,谢谢大家的帮助!我只需要刷新dbml文件中的过程。无论如何,谢谢大家的帮助!