ホームページ > データベース > mysql チュートリアル > C# MVC 4 で SQL INSERT コマンドの後に挿入された ID を取得する方法

C# MVC 4 で SQL INSERT コマンドの後に挿入された ID を取得する方法

Patricia Arquette
リリース: 2025-01-17 01:42:13
オリジナル
535 人が閲覧しました

C# MVC 4 での SQL INSERT 後に挿入された ID を取得する

How to Retrieve the Inserted ID After an SQL INSERT Command in C# MVC 4?

この記事では、MVC 4 アプリケーションで C# を使用してデータを挿入し、新しく挿入されたレコードの ID を取得する方法を説明します。 ExecuteNonQuery は影響を受ける行の数を示しますが、挿入された ID を取得するには別のアプローチが必要です。

最も簡単な方法は ExecuteScalar を利用します。 ただし、結果は明示的に整数にキャストする必要があります:

<code class="language-csharp">int modified = (int)cmd.ExecuteScalar();</code>
ログイン後にコピー

実行が成功すると、modified は新しく生成された ID を保持します。

SQL Server 2005 以降の場合、OUTPUT ステートメント内で INSERT キーワードを利用すると、より効率的なソリューションが提供されます。

<code class="language-csharp">using (SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) OUTPUT INSERTED.ID VALUES(@na,@occ)", con))
{
    cmd.Parameters.AddWithValue("@na", Mem_NA);
    cmd.Parameters.AddWithValue("@occ", Mem_Occ);
    con.Open();

    int modified = (int)cmd.ExecuteScalar();

    if (con.State == System.Data.ConnectionState.Open) con.Close();

    return modified;
}</code>
ログイン後にコピー

古い SQL Server バージョンの場合、SCOPE_IDENTITY() 関数は同等の代替手段を提供します。

<code class="language-csharp">using (SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) VALUES(@na,@occ); SELECT SCOPE_IDENTITY();", con))
{
    cmd.Parameters.AddWithValue("@na", Mem_NA);
    cmd.Parameters.AddWithValue("@occ", Mem_Occ);
    con.Open();

    int modified = Convert.ToInt32(cmd.ExecuteScalar());

    if (con.State == System.Data.ConnectionState.Open)
        con.Close();

    return modified;
}</code>
ログイン後にコピー

これらのメソッドにより、SQL Server のバージョンに関係なく、挿入されたレコードの ID を正確に取得できます。 運用環境では、潜在的な例外を適切に処理することを忘れないでください。

以上がC# MVC 4 で SQL INSERT コマンドの後に挿入された ID を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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