本文演示了如何在 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中文网其他相关文章!