2013-06-19 60 views
0

我需要將泰米爾語言插入SQL Server 2005.我試過使用InsertUpdate查詢,它工作正常。去存儲過程時,我不知道如何傳遞參數。使用存儲過程在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'பெண்டிரேம்'; 

如果我執行它,它被正確插入..但我不知道如何從我的C#應用​​程序傳遞'N'。我用一個文本框來獲取Description_Ta參數。

+0

不要引用參數; 'Description_Ta = @ Description_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當然

MSDN doc for SqlDbType狀態(我的粗體)

的VarChar:一個可變長度流非Unicode字符...

...

的NVarChar:中的Unicode字符的變長流......

相關問題