預存程序或函數需要據稱提供的參數
呼叫預存程序將資料插入 SQL Server資料庫時,您可能會遇到錯誤“過程或函數'預存程序名稱'需要參數'@參數名稱',但未提供該參數。”此錯誤訊息可能會令人困惑,特別是如果您已驗證預存程序具有正確的參數並且它們在您的程式碼中提供的話。
錯誤故障排除
要解決此問題,請徹底檢查以下內容:
範例程式碼更新
以下是程式碼的更新版本,其中明確指定了指令類型和參數值:
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(); } }
透過仔細檢查參數名稱、資料類型、命令類型和參數排序,您可以減輕此錯誤並成功執行您的預存程序。
以上是為什麼 My SQL 預存程序會拋出'過程或函數 '...' 需要參數 '@參數名稱',但未提供”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!