Mengapa Kod C# Saya Sentiasa Mengembalikan 0 untuk ID Baris yang Dimasukkan?

Susan Sarandon
Lepaskan: 2024-11-07 13:47:02
asal
588 orang telah melayarinya

Why Does My C# Code Always Return 0 for the Inserted Row ID?

Dapatkan semula ID Baris yang Disisipkan dengan Berkesan dalam C#

Apabila bekerja dengan operasi pangkalan data, menangkap pengecam unik baris yang dimasukkan adalah penting. Ini benar terutamanya apabila membuat segmen seterusnya kod anda. Walau bagaimanapun, menghadapi nilai pulangan yang konsisten sebanyak 0 walaupun ID sebenar mempunyai nilai bukan sifar boleh mengecewakan.

Mari kita mendalami isu yang anda hadapi. Kod C# yang disediakan cuba untuk mendapatkan ID baris yang disisipkan, tetapi ia sentiasa mengembalikan 0. Tingkah laku ini berpunca daripada kesilapan dalam pelaksanaan kod.

Inti masalah terletak dalam baris berikut:

int id = Convert.ToInt32(comm.ExecuteScalar());
Salin selepas log masuk

Walaupun kaedah ExecuteScalar mampu mendapatkan semula nilai tunggal daripada pertanyaan yang dilaksanakan, adalah penting untuk ambil perhatian bahawa ia tidak mengembalikan ID baris yang dimasukkan secara automatik. Isu timbul apabila anda cuba menghantar nilai yang dikembalikan kepada int menggunakan Convert.ToInt32. Penghantaran ini boleh membawa kepada penukaran yang salah, menyebabkan 0 dikembalikan.

Untuk membetulkan keadaan ini, kami perlu menggantikan ExecuteScalar dengan ExecuteNonQuery. Fungsi ini bertanggungjawab untuk melaksanakan pernyataan bukan pertanyaan, seperti operasi sisipan. Berikutan kejayaan pelaksanaan pernyataan sisipan, anda boleh memanfaatkan sifat LastInsertedId bagi objek MySqlCommand untuk mendapatkan ID baris yang baru dibuat:

MySqlCommand comm = connect.CreateCommand();
comm.CommandText = insertStatement;
comm.ExecuteNonQuery();
long id = comm.LastInsertedId;
Salin selepas log masuk

Dengan melaksanakan pelarasan ini, anda boleh mendapatkan ID dengan berkesan baris yang disisipkan, memastikan peralihan yang lancar ke fasa seterusnya pelaksanaan kod anda.

Atas ialah kandungan terperinci Mengapa Kod C# Saya Sentiasa Mengembalikan 0 untuk ID Baris yang Dimasukkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!