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!