首頁 > 後端開發 > C++ > 如何在 C# 中執行 SQL INSERT 後檢索自動產生的 ID?

如何在 C# 中執行 SQL INSERT 後檢索自動產生的 ID?

DDD
發布: 2025-01-17 21:56:11
原創
380 人瀏覽過

How to Retrieve Auto-Generated IDs After an SQL INSERT in C#?

在 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板