在 C# 中 SQL INSERT 后检索自动生成的 ID
本文解决了一个常见的 C# 编程挑战:在将新记录插入 SQL Server 数据库后有效检索自动生成的 ID。 我们将探索几种方法,重点介绍它们与不同 SQL Server 版本的兼容性。
假设您正在将数据插入名为“Mem_Basic”的表并需要新生成的“ID”:
<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 ) { // ... (code to be added) }</code>
一种方法使用 ExecuteScalar()
,但这在所有 SQL Server 版本中并不总是可靠:
<code class="language-csharp">int modified =(int)cmd.ExecuteScalar(); //Potentially unreliable in older SQL Server versions</code>
对于 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)) { // ... (rest of the code) }</code>
但是,对于较旧的 SQL Server 版本(2005 年之前),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)) { // ... (rest of the code) }</code>
这些方法确保开发人员能够在 SQL INSERT
操作后一致地检索自动生成的 ID,从而改进 C# 应用程序中的数据管理。
以上是如何在 C# 中执行 SQL INSERT 后检索自动生成的 ID?的详细内容。更多信息请关注PHP中文网其他相关文章!