1

タミル語を SQL Server 2005 に挿入する必要があります。InsertまたはUpdateクエリを使用してみましたが、問題なく動作しました。ストアド プロシージャに移動するときに、パラメーターを渡す方法がわかりません。

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そのパラメーターを取得するためにテキストボックスを使用しました。

4

2 に答える 2

2

SQLParameterNに使用する場合、C#は自動的に追加する必要がありますSqlDbType.NVarChar

SqlDbType.VarCharもちろん使用している必要があります

州のMSDN ドキュメントSqlDbType(私の太字)

VarChar:非 Unicode文字の可変長ストリーム...

...

NVarChar: Unicode文字の可変長ストリーム...

于 2013-06-19T11:20:06.247 に答える
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;

ストアド プロシージャを定義するときは、引数を指定しないでください。

于 2013-06-19T10:52:31.167 に答える