Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mendapatkan ID Terakhir Dimasukkan Selepas INSERT SQL dalam C# MVC 4?

Bagaimana untuk Mendapatkan ID Terakhir Dimasukkan Selepas INSERT SQL dalam C# MVC 4?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-17 21:51:10684semak imbas

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

Mengambil ID Rekod SQL yang Baru Dimasukkan dalam C# MVC 4

Memasukkan data ke dalam jadual SQL Server menggunakan C# MVC 4 memerlukan mekanisme untuk mendapatkan ID baris yang baru ditambah. Walaupun cmd.ExecuteNonQuery() menunjukkan bilangan baris yang terjejas, ia tidak mengembalikan ID yang dijana.

Kaedah untuk SQL Server 2005 dan Kemudian:

Pendekatan paling cekap memanfaatkan klausa 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>

Alternatif untuk Versi Pelayan SQL Lama:

Untuk versi SQL Server sebelum 2005, gunakan 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>

Coretan kod ini menunjukkan cara untuk mendapatkan ID yang baru dijana selepas operasi INSERT, memastikan pengendalian data yang betul dalam aplikasi C# MVC 4 anda. Ingat untuk menggantikan Mem_Basic, Mem_Na dan Mem_Occ dengan nama jadual dan lajur sebenar anda.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan ID Terakhir Dimasukkan Selepas INSERT SQL dalam C# MVC 4?. 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