Rumah > pangkalan data > tutorial mysql > Mengapa Prosedur Tersimpan Saya Melemparkan Ralat 'Prosedur atau Fungsi Menjangka Parameter Yang Tidak Dibekalkan'?

Mengapa Prosedur Tersimpan Saya Melemparkan Ralat 'Prosedur atau Fungsi Menjangka Parameter Yang Tidak Dibekalkan'?

Barbara Streisand
Lepaskan: 2025-01-06 16:33:40
asal
1018 orang telah melayarinya

Why Does My Stored Procedure Throw a

Parameter Prosedur Tersimpan Tidak Padan: "Prosedur atau Fungsi Menjangka Parameter Yang Tidak Dibekalkan"

Apabila bekerja dengan sambungan pangkalan data, adalah penting untuk menyelaraskan parameter yang ditakrifkan dalam prosedur tersimpan dengan yang dihantar dari kod panggilan. Kegagalan berbuat demikian boleh mengakibatkan ralat seperti "Prosedur atau fungsi 'SHOWuser' mengharapkan parameter '@userID', yang tidak dibekalkan."

Dalam contoh yang disediakan, prosedur tersimpan SHOWuser dijangka menerima tiga parameter: @userName, @password dan @emailAddress. Walau bagaimanapun, kod tersebut cuba melaksanakan prosedur yang disimpan tanpa memberikan nilai untuk parameter @userID, yang digunakan dalam penyataan INSERT dan SELECT berikutnya dalam prosedur.

Menyelesaikan Ketakpadanan Parameter

Untuk menyelesaikan isu, anda perlu memastikan semua parameter yang diperlukan oleh prosedur tersimpan disertakan dalam cmd.Parameters koleksi:

cmd.Parameters.AddWithValue("@userName", userName);
cmd.Parameters.AddWithValue("@password", password);
cmd.Parameters.AddWithValue("@emailAddress", emailAddress);
cmd.Parameters.AddWithValue("@userID", user_id); // Add the missing parameter
Salin selepas log masuk

Setelah semua parameter yang diperlukan diambil kira, prosedur yang disimpan harus dilaksanakan dengan jayanya tanpa ralat ketidakpadanan parameter.

Pertimbangan Tambahan

Perlu juga diperhatikan bahawa jenis arahan harus dinyatakan secara eksplisit sebagai disimpan prosedur:

cmd.CommandType = System.Data.CommandType.StoredProcedure;
Salin selepas log masuk

Ini memastikan pelayan pangkalan data mengetahui sifat perintah yang sedang dilaksanakan. Tanpa menyatakan jenis arahan, anda mungkin menghadapi tingkah laku yang tidak dijangka.

Atas ialah kandungan terperinci Mengapa Prosedur Tersimpan Saya Melemparkan Ralat 'Prosedur atau Fungsi Menjangka Parameter Yang Tidak Dibekalkan'?. 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