本文示範如何在 MVC 4 應用程式中使用 C# 將資料插入 SQL Server 表中,並同時取得新插入記錄的 ID。
以下程式碼片段說明如何使用兩種不同的方法來實現此目的:
方法一:使用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中文網其他相關文章!