CodeFlowCodeFlowasp.netでストアドプロシージャを実行するとエラーが発生する31asp.netでストアドプロシージャを実行するとエラーが発生するコードビハインドでasp.netのストアドプロシージャを実行しようとしています。"トランスポートがサーバーに接続できませんでした。クエリが実行されたときのエラーメッセージは次のとおりです。`着信テーブルデータストリーム(TDS)リモートプロシージャコール(RPC)プロトコルストリームが正しくありません。"@errMessage"):データ型0xE7のデータ長またはメタデータ長が無効です。}表の列データ型はnvarchar(MAX)です。Answer8この部分「データ型0xE7のデータ長が無効です」は、パラメーターstrErrorMessageが、SQLパラメーターDataTypeが処理できるデータ長よりも長いデータ長として指定されていると考えるようになります。[こちら]は、Microsoftサポート記事で役立つ場合があります。4001〜8000のSqlParameter.SizeでNVarCharパラメーターを指定すると、SqlClientは次の例外をスローします。着信の表形式データストリーム(TDS)リモートプロシージャコール(RPC)プロトコルストリームが正しくありません。"@"):データ型0xE7のデータ長またはメタデータ長が無効です。この問題を回避するには、次のオプションのいずれかを使用します。・Sqlparamter.sizeプロパティを-1に設定して、切り捨てなしでバックエンドからデータ全体を取得するようにします。・サイズが4000を超える文字列DbTypeを使用する場合は、NVarchar(文字列の既定のSqlDBTypeでもあります)を使用する代わりに、NTextなどの別のSqlDBTypeに明示的にマップします。・Sqlparameter.sizeには、4001〜8000以外の値を使用します。_source2編集:パラメーターサイズを8000に宣言しましたが、NVARCHARは最大4000文字しかサポートしていません。私はそれが問題だと強く疑います。'最初にコードを投稿すると助かります...​コンソールアプリを使用してこれを診断することをお勧めします。ASP.NETを使用するよりも、この方法を繰り返す方が簡単です。取得するメッセージは少し奇妙に聞こえます。8000));パラメータの長さがデータベースで指定された長さと異なる(大きいまたは小さい)場合、エラーが発生します。source2これを見なさい:http://support.microsoft.com/kb/970519これは、パラメーターのサイズが4001〜8000の間にある可能性があります。source0SqlException.Numberは8004でした。DbCommandのCommandTypeをCommandType.StoredProcedureに設定しました。CommandType.CommandType.Textに変更すると、問題が修正されました。0Nvarchar(Max)の場合、TSQLで4000文字しか取得できません。