ホームページ >バックエンド開発 >C++ >C# で SQL Server ストアド プロシージャから戻り値を取得する方法

C# で SQL Server ストアド プロシージャから戻り値を取得する方法

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-20 01:11:08804ブラウズ

How to Retrieve a Return Value from a SQL Server Stored Procedure in C#?

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>

ParameterDirectionReturnValue に設定すると、SqlParameter がストアド プロシージャの戻り値の受信者として指定されます。 ExecuteNonQuery() の後、このパラメーターの Value プロパティは戻り値を保持します。この値は、C# アプリケーションからアクセスして使用できます。 Value プロパティを正しいデータ型にキャストしてください。

以上がC# で SQL Server ストアド プロシージャから戻り値を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。