ホームページ > バックエンド開発 > C++ > C# でストアド プロシージャの出力パラメータから主キーを取得する方法

C# でストアド プロシージャの出力パラメータから主キーを取得する方法

Linda Hamilton
リリース: 2025-01-10 08:45:42
オリジナル
567 人が閲覧しました

How to Retrieve a Primary Key from a Stored Procedure's Output Parameter in C#?

C# でのストアド プロシージャ出力パラメーターの使用

ストアド プロシージャからデータを取得する場合、多くの場合、追加情報を取得するために出力パラメータにアクセスする必要があります。この例では、C# プログラムが usp_InsertContract ストアド プロシージャによって返された主キーを取得しようとしているときに問題が発生しました。

以下に示すように、ストアド プロシージャは SCOPE_IDENTITY() を使用するように少し変更されています。

<code class="language-sql">CREATE PROCEDURE usp_InsertContract
(
    @ContractNumber varchar(7),
    @NewId int OUTPUT
)
AS
BEGIN
    INSERT INTO [dbo].[Contracts] (ContractNumber)
    VALUES (@ContractNumber)

    SELECT @NewId = SCOPE_IDENTITY()
END</code>
ログイン後にコピー

出力値を正しく取得できるように C# コードも調整されました:

<code class="language-csharp">// 打开连接并执行存储过程
conn.Open();
cmd.ExecuteNonQuery();

// 从@NewId读取输出值
int contractID = Convert.ToInt32(cmd.Parameters["@NewId"].Value);
conn.Close();</code>
ログイン後にコピー

この変更により、主キーが出力パラメーターとして正しく返され、C# プログラムでアクセスできるようになり、問題が解決されます。

注: Contracts テーブルに IDENTITY 属性が正しく設定された列があることを必ず確認してください。 IDENTITY 列が欠落していると、主キー値の取得が困難になる場合もあります。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート