2010-11-19 3 views
1

ファクトリを使用してプリペアドステートメントを作成し、後で実行する既存のアプリケーションを更新しています。これはシステムの残りの部分、私はNTextを使用するステートメントへの呼び出しを追加することが任されており、ステートメントを適切に準備する方法を理解することはできません。 「SqlCommand.Prepareメソッドは、すべての可変長パラメータにゼロ以外のサイズを明示的に設定する必要があります」というランタイムエラーが発生します。私は長さNText(clob)パラメータを含むADO.NETステートメントを準備する方法

必須コードサンプルに使用する値がわからない:

SqlCommand update = new SqlCommand("UPDATE Log.Response_File_Log " + 
    "SET File = @File " + 
    ", DateFileReceived = GETDATE() " + 
    "WHERE RunID = @RunID", _connection); 
update.Parameters.Add(new SqlParameter("@File", SqlDbType.NText)); 
update.Parameters.Add(new SqlParameter("@RunID", SqlDbType.Int)); 
update.Prepare(); 

答えて

2

NTEXTを使用しないでください。deprecated typeです。データベースにNTEXT列がある場合は、VARBINARY(MAX)に変更してください。 MAXタイプのパラメータの長さには-1を使用します。長さ:(...,SqlDbType.Varbinary, -1)

0

は、あなたは、パラメータを@fileするには渡しているデータの長さに設定することはできますか?これは単なる提案です。

関連する問題