首页 >后端开发 >C++ >如何在 C# MVC 4 中的 SQL INSERT 后检索最后插入的 ID?

如何在 C# MVC 4 中的 SQL INSERT 后检索最后插入的 ID?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-17 21:51:10684浏览

How to Retrieve the Last Inserted ID After an SQL INSERT in C# MVC 4?

在 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_BasicMem_NaMem_Occ 替换为您的实际表名和列名。

以上是如何在 C# MVC 4 中的 SQL INSERT 后检索最后插入的 ID?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn