Prosedur atau Fungsi Tersimpan Menjangka Parameter Yang Kononnya Dibekalkan
Apabila memanggil prosedur tersimpan untuk memasukkan data ke dalam pangkalan data SQL Server, anda mungkin menghadapi ralat "Prosedur atau fungsi ' nama prosedur tersimpan ' menjangka parameter '@nama parameter', yang tidak dibekalkan." Mesej ralat ini boleh membingungkan, terutamanya jika anda telah mengesahkan bahawa prosedur yang disimpan mempunyai parameter yang betul dan ia dibekalkan dalam kod anda.
Menyelesaikan Masalah Ralat
Untuk menyelesaikan isu ini, semak perkara berikut dengan teliti:
Kemas Kini Kod Contoh
Berikut ialah versi kemas kini kod anda yang menyatakan secara jelas jenis arahan dan nilai parameter:
public void SHOWuser(string userName, string password, string emailAddress, List<int> preferences) { using var dbcon = new SqlConnection(conn); using var cmd = new SqlCommand(); cmd.Connection = dbcon; cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.CommandText = "SHOWuser"; cmd.Parameters.AddWithValue("@userName", userName); cmd.Parameters.AddWithValue("@password", password); cmd.Parameters.AddWithValue("@emailAddress", emailAddress); dbcon.Open(); int i = Convert.ToInt32(cmd.ExecuteScalar()); cmd.Parameters.Clear(); cmd.CommandText = "tbl_pref"; foreach (int preference in preferences) { cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@userID", Convert.ToInt32(i)); cmd.Parameters.AddWithValue("@preferenceID", Convert.ToInt32(preference)); cmd.ExecuteNonQuery(); } }
Dengan memeriksa dengan teliti nama parameter, jenis data, jenis arahan dan pesanan parameter, anda boleh mengurangkan ralat ini dan berjaya melaksanakan prosedur tersimpan anda.
Atas ialah kandungan terperinci Mengapa Prosedur Disimpan SQL Saya Melemparkan Ralat 'Prosedur atau fungsi '...' menjangkakan parameter '@nama parameter', yang tidak dibekalkan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!