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
Barbara Streisandasal
2025-01-06 16:33:401078semak imbas

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

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;

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!

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