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 중국어 웹사이트의 기타 관련 기사를 참조하세요!