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
Lepaskan: 2025-01-01 07:00:11
asal
770 orang telah melayarinya

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)
}
Salin selepas log masuk
  • 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;
}
Salin selepas log masuk

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!

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