首页 > 数据库 > mysql教程 > 如何在 C# 中的 SQL INSERT 命令后检索插入的 ID?

如何在 C# 中的 SQL INSERT 命令后检索插入的 ID?

Linda Hamilton
发布: 2025-01-17 01:36:09
原创
660 人浏览过

How to Retrieve the Inserted ID After an SQL INSERT Command in C#?

在 C# 中 SQL INSERT 后检索自动生成的 ID

通过C#向SQL Server表添加数据时,获取新条目自动生成的ID是一个常见的需求。 本教程演示了两种方法:使用 OUTPUT 子句(SQL Server 2005 及更高版本)和 SCOPE_IDENTITY() 函数(旧版本)。

方法 1:OUTPUT 子句(SQL Server 2005 及更高版本)

OUTPUT子句提供了一种直接的方法来指定包含ID的列:

<code class="language-csharp">using (SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) OUTPUT INSERTED.ID VALUES(@na,@occ)", con))</code>
登录后复制

这里,INSERTED.ID子句中的OUTPUT返回新插入行的ID。

方法 2:SCOPE_IDENTITY() 函数(较旧的 SQL Server 版本)

对于较旧的 SQL Server 版本,SCOPE_IDENTITY() 检索当前范围内最近插入的行的 ID:

<code class="language-csharp">using (SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) VALUES(@na,@occ); SELECT SCOPE_IDENTITY();", con))</code>
登录后复制

此查询插入数据,然后在单独的 SCOPE_IDENTITY() 语句中使用 SELECT 来获取 ID。

获取 ID

在这两种方法中,都使用 ExecuteScalar() 和类型转换来访问生成的 ID:

<code class="language-csharp">int newId = (int)cmd.ExecuteScalar();</code>
登录后复制

此技术可确保有效检索新插入的记录 ID,提供跨不同 SQL Server 版本的兼容性。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板