Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mendapatkan ID Auto-Generated Selepas SQL INSERT dalam C#?

Bagaimana untuk Mendapatkan ID Auto-Generated Selepas SQL INSERT dalam C#?

DDD
DDDasal
2025-01-17 21:56:11381semak imbas

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

Mengambil ID Dijana Auto Selepas SQL INSERT dalam C#

Artikel ini menangani cabaran pengaturcaraan C# biasa: dengan cekap mendapatkan ID yang dijana secara automatik selepas memasukkan rekod baharu ke dalam pangkalan data SQL Server. Kami akan meneroka beberapa kaedah, menyerlahkan keserasiannya dengan versi SQL Server yang berbeza.

Bayangkan anda memasukkan data ke dalam jadual bernama "Mem_Basic" dan memerlukan "ID" yang baru dijana:

<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>

Satu kaedah menggunakan ExecuteScalar(), tetapi ini tidak selalu boleh dipercayai merentas semua versi SQL Server:

<code class="language-csharp">int modified =(int)cmd.ExecuteScalar(); //Potentially unreliable in older SQL Server versions</code>

Untuk SQL Server 2005 dan kemudian, klausa OUTPUT menyediakan penyelesaian yang mantap:

<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>

Walau bagaimanapun, untuk versi SQL Server yang lebih lama (pra-2005), SCOPE_IDENTITY() menawarkan alternatif yang boleh dipercayai:

<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>

Kaedah ini memastikan pembangun boleh mendapatkan semula ID yang dijana secara automatik selepas operasi INSERT SQL, meningkatkan pengurusan data dalam aplikasi C#.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan ID Auto-Generated Selepas SQL INSERT dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn