ホームページ > バックエンド開発 > C++ > C# MVC 4でSQL INSERT後に最後に挿入されたIDを取得する方法は?

C# MVC 4でSQL INSERT後に最後に挿入されたIDを取得する方法は?

Mary-Kate Olsen
リリース: 2025-01-17 21:51:10
オリジナル
681 人が閲覧しました

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

C# MVC 4 で新しく挿入された SQL レコードの ID を取得する

C# MVC 4 を使用して SQL Server テーブルにデータを挿入するには、新しく追加された行の ID を取得するメカニズムが必要です。 cmd.ExecuteNonQuery() は影響を受ける行の数を示しますが、生成された ID は返しません。

SQL Server 2005 以降のメソッド:

最も効率的なアプローチは、OUTPUT 句を利用するものです:

<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 newId = (int)cmd.ExecuteScalar();

    if (con.State == System.Data.ConnectionState.Open) con.Close();
}</code>
ログイン後にコピー

古い SQL Server バージョンの代替:

2005 より前のバージョンの 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 newId = Convert.ToInt32(cmd.ExecuteScalar());

    if (con.State == System.Data.ConnectionState.Open) con.Close();
}</code>
ログイン後にコピー

これらのコード スニペットは、INSERT 操作の後に新しく生成された ID を取得し、C# MVC 4 アプリケーションで適切なデータ処理を保証する方法を示しています。 Mem_BasicMem_NaMem_Occ を実際のテーブル名と列名に置き換えてください。

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

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