C# で SQL Server ストアド プロシージャからの戻り値にアクセスする
この記事では、C# アプリケーション内の SQL Server ストアド プロシージャから戻り値を正しく取得する方法について説明します。 一般的な問題は、パラメーターを適切に処理せずに戻り値 (次のシーケンス番号など) にアクセスしようとすると発生します。
この例では、usp_GetNewSeqVal
テーブル内のシーケンス値をインクリメントし、更新された値を返すストアド プロシージャ AllSequences
を使用します。 C# コードはデータベースに接続し、SqlCommand
.
戻り値を取得する鍵は、ParameterDirection.ReturnValue
のパラメーターを SqlCommand
のパラメーター コレクションに追加することです。この専用パラメータは、ストアド プロシージャの出力のコンテナとして機能します。
修正された C# コード スニペットは次のとおりです:
<code class="language-csharp">using (SqlCommand cmd = conn.CreateCommand()) { // ... other code ... // Add a parameter to receive the return value SqlParameter returnParameter = cmd.Parameters.Add("@ReturnVal", SqlDbType.Int); returnParameter.Direction = ParameterDirection.ReturnValue; // ... other code ... conn.Open(); cmd.ExecuteNonQuery(); int result = (int)returnParameter.Value; // Cast to appropriate type }</code>
ParameterDirection
を ReturnValue
に設定すると、SqlParameter
がストアド プロシージャの戻り値の受信者として指定されます。 ExecuteNonQuery()
の後、このパラメーターの Value
プロパティは戻り値を保持します。この値は、C# アプリケーションからアクセスして使用できます。 Value
プロパティを正しいデータ型にキャストしてください。
以上がC# で SQL Server ストアド プロシージャから戻り値を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。