Не могу вставить русский текст в SQL server 2005 db

Я использую хранимые процедуры и DataContext для вставки данных в базу данных SQL Server (база данных ASP.NET 4 + SQL Server 2005, хостинг GoDaddy)

Но после вставки русского текста вижу что-то вроде этого - '??????'

Если я вставляю постоянный текст, я использую следующую конструкцию - N'russian_text', и она отлично работает.

Конечно, мне нужно использовать переменные в качестве параметров процедуры, НО я не могу это использовать (например, N@var не работает)

ХОТЯ я использую поля N-типа в таблицах (nvarchar и т.д.)

Кто-нибудь знает, где ошибка?


person George    schedule 09.11.2010    source источник


Ответы (2)


Переменные NVARCHAR объявляются как

DECLARE @var NVARCHAR(100)
SET @var = N'unicode text'

а не как DECLARE N@var..., SET N@var

То же самое относится к параметрам процедур и функций.

CREATE PROCEDURE InsertUnicodeData( @data NVARCHAR(200) ) AS
....
person devio    schedule 10.11.2010
comment
Мне просто нужно было обновить процедуру в файле dbml. В любом случае спасибо всем за помощь! - person George; 11.11.2010

ваши переменные SqlParamter в .net должны иметь тип SqlDbType.NVarChar.
как и сейчас, они SqlDbType.VarChar.
на сервере sql ваш @text должен быть nvarchar(ColLength)

person Mladen Prajdic    schedule 10.11.2010