Rumah >pangkalan data >tutorial mysql >Mengapa Saya Mendapat Ralat 'Nama Pembolehubah '@' Telah Diisytiharkan' dalam Pertanyaan SQL Saya?

Mengapa Saya Mendapat Ralat 'Nama Pembolehubah '@' Telah Diisytiharkan' dalam Pertanyaan SQL Saya?

Linda Hamilton
Linda Hamiltonasal
2025-01-01 07:00:11872semak imbas

Why Am I Getting the

"Nama Pembolehubah '@' Telah Diisytiharkan" Ralat dalam Pertanyaan SQL

Apabila melaksanakan pertanyaan SQL, adalah penting untuk memastikan bahawa nama pembolehubah yang diisytiharkan dalam kumpulan pertanyaan atau prosedur tersimpan adalah unik. Ralat ini sering berlaku apabila menggunakan penggantian pembolehubah dengan awalan '@'.

Punca Ralat

Dalam kod yang disediakan, contoh kedua '@LockState' dalam koleksi parameter mencetuskan ralat. Ini kerana setiap parameter mesti mempunyai nama unik dalam pertanyaan yang sama.

Penyelesaian

Untuk menyelesaikan ralat ini, laksanakan salah satu daripada penyelesaian berikut:

  • Kosongkan Koleksi Parameter selepas Setiap Lelaran:

Gunakan rwd.command.Parameters.Clear() selepas setiap lelaran gelung untuk mengalih keluar parameter yang ditambahkan sebelum ini, memastikan bahawa lelaran seterusnya bermula dengan set baharu.

for (long counter = from; counter <= to; counter++)
{
    rwd.command.Parameters.Clear();
    // ... (remaining code)
}
  • Isytihar Parameter Di Luar Gelung:

Isytiharkan parameter di luar gelung dan tetapkan nilai dalam gelung. Ini memastikan parameter ditakrifkan sekali sahaja.

rwd.command.Parameters.Add(new SqlParameter("@LockState", SqlDbType.NVarChar));
rwd.command.Parameters.Add(new SqlParameter("@card_descr", SqlDbType.NVarChar));

for (long counter = from; counter <= to; counter++)
{
    // ... (remaining code)
    rwd.command.Parameters["@LockState"].Value = 1;
    rwd.command.Parameters["@card_descr"].Value = txt_desc2.Text;
}

Dengan mengikuti langkah ini, anda boleh memastikan nama pembolehubah unik dalam pertanyaan anda, menghalang ralat "Nama pembolehubah '@' telah diisytiharkan" dan memastikan pelaksanaan yang lancar.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Nama Pembolehubah '@' Telah Diisytiharkan' dalam Pertanyaan SQL Saya?. 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