2013-06-19 2 views
0

Мне нужно вставить язык тамилов в SQL Server 2005. Я пробовал использовать запрос или Update, он работал нормально. Переходя к хранимой процедуре, я не знаю, как передать параметр.Вставка нескольких языков в SQL Server с использованием хранимой процедуры

ALTER PROCEDURE [dbo].[spr_Sam] 
    @Row_Id  int   = NULL, 
    @Description_Ta nvarchar(MAX) = null 
AS 
BEGIN 
    update tblTest set 
    Description_Ta = @Description_Ta 
    where Row_Id = @Row_Id 
END 

exec [dbo].[spr_Sam] 2, 'பெண்டிரேம்'; 

Если я выполняю это, он вставлен как ?????.

exec [dbo].[spr_Sam] 2, N'பெண்டிரேம்'; 

Если я выполнить это он получает установлен правильно .. но я не знаю, как передать, что «N» от моего C# Заявке. Я использовал текстовое поле для получения этого параметра Description_Ta.

+0

Не указывайте параметр; 'Описание_Ta = @ Описание_Ta' –

ответ

1

Вот правильное утверждение обновление:

update tblTest 
    set Description_Ta = @Description_Ta 
where Row_Id = @Row_Id; 

Вам не нужны одиночные кавычки переменной.

Но, я думаю, публикация в замешательстве. Для вызова процедуры использования:

exec [dbo].[spr_Sam] 2, N'பெண்டிரேம்'; 

Чтобы изменить его:

ALTER PROCEDURE [dbo].[spr_Sam]  
    @Row_Id  int   = NULL, 
    @Description_Ta nvarchar(MAX) = null 
AS 
BEGIN 
    update tblTest 
     set Description_Ta = @Description_Ta 
     where Row_Id = @Row_Id; 
END; 

Вы не должны иметь аргументы при определении хранимой процедуры.

+0

См. Отредактированный вопрос. –

2

C# следует добавить N автоматически, если вы используете SqlDbType.NVarChar для SqlParameter

Вы должны использовать SqlDbType.VarChar конечно

The MSDN doc for SqlDbType состояние (мой жирный)

VarChar: переменную длину поток не-Юникод ...

...

NVARCHAR: переменной длины поток Unicode символов ...

 Смежные вопросы

  • Нет связанных вопросов^_^