이 문서에서는 MVC 4 애플리케이션 내에서 C#을 사용하여 SQL Server 테이블에 데이터를 삽입하는 동시에 새로 삽입된 레코드의 ID를 얻는 방법을 보여줍니다.
다음 코드 조각은 두 가지 접근 방식을 사용하여 이를 달성하는 방법을 보여줍니다.
방법 1: SCOPE_IDENTITY()
사용(SQL Server 2005 이상에 적합)
<code class="language-csharp">public class MemberBasicData { public int Id { get; set; } public string Mem_NA { get; set; } public string Mem_Occ { get; set; } } public int CreateNewMember(string Mem_NA, string Mem_Occ ) { using (SqlConnection con = new SqlConnection(Config.ConnectionString)) { 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(); return newId; } } }</code>
방법 2: OUTPUT
절 사용(SQL Server 2005 이상)
이 방법은 일반적으로 명확성과 효율성 때문에 선호됩니다.
<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(); return newId; }</code>
두 방법 모두 데이터를 삽입하고 새로 생성된 ID를 반환하는 동일한 결과를 얻습니다. OUTPUT
절은 일반적으로 더 효율적이고 읽기 쉬운 것으로 간주됩니다. Config.ConnectionString
을 실제 연결 문자열로 바꿔야 합니다.
위 내용은 MVC 4에서 C#을 사용하여 SQL 삽입 후 삽입된 ID를 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!