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_Basic
、Mem_Na
、Mem_Occ
を実際のテーブル名と列名に置き換えてください。
以上がC# MVC 4でSQL INSERT後に最後に挿入されたIDを取得する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。