Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan ID Baris yang Disisipkan menggunakan C#?

Bagaimana untuk Mendapatkan ID Baris yang Disisipkan menggunakan C#?

DDD
DDDasal
2024-11-07 18:49:03858semak imbas

How to Retrieve the ID of an Inserted Row using C#?

Mendapatkan Pengecam Baris yang Disisipkan menggunakan C#

Dalam jadual pangkalan data yang mengandungi medan "ID" yang ditambah secara automatik, mendapatkan ID baris yang dimasukkan baru-baru ini terbukti sebagai tugas yang berulang. Ini menjadi sangat penting untuk operasi seterusnya yang bergantung pada ID.

Dalam kes anda, walaupun melaksanakan perintah sisipan, nilai ID yang diambil secara konsisten mengembalikan sifar. Percanggahan ini timbul daripada penggunaan ExecuteScalar, yang mendapatkan semula lajur pertama baris pertama yang dikembalikan oleh arahan. Oleh kerana tiada lajur khusus diunjurkan, nilai pada indeks pertama diambil semula. Walau bagaimanapun, ID yang ditambah secara automatik biasanya dijana selepas sisipan arahan, menyebabkan lajur ID pada mulanya tidak mengandungi apa-apa.

Untuk menangani isu ini, pertimbangkan untuk mengubah suai kod anda seperti berikut:

MySqlCommand comm = connect.CreateCommand();
comm.CommandText = insertStatement;  // Set the insert statement
comm.ExecuteNonQuery();              // Execute the command
long id = comm.LastInsertedId;       // Get the ID of the inserted item

Perbezaan kritikal terletak pada penggunaan ExecuteNonQuery, yang secara khusus melaksanakan pernyataan sisipan tanpa mengembalikan nilai. Selepas itu, memanggil LastInsertedId mendapatkan semula nilai ID yang dijana secara langsung.

Pendekatan ini sejajar dengan keperluan untuk mendapatkan ID yang ditambah secara automatik, menghapuskan isu yang dihadapi dengan ExecuteScalar.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan ID Baris yang Disisipkan menggunakan 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