Heim > Datenbank > MySQL-Tutorial > Warum löst meine gespeicherte SQL-Prozedur den Fehler „Prozedur oder Funktion ‚...' erwartet Parameter ‚@Parametername', der nicht angegeben wurde' aus?

Warum löst meine gespeicherte SQL-Prozedur den Fehler „Prozedur oder Funktion ‚...' erwartet Parameter ‚@Parametername', der nicht angegeben wurde' aus?

Barbara Streisand
Freigeben: 2025-01-06 16:50:40
Original
353 Leute haben es durchsucht

Why Does My SQL Stored Procedure Throw a

Gespeicherte Prozedur oder Funktion erwartet Parameter, der angeblich bereitgestellt wird

Beim Aufrufen einer gespeicherten Prozedur zum Einfügen von Daten in eine SQL Server-Datenbank kann es vorkommen, dass Folgendes auftritt: der Fehler „Prozedur oder Funktion ‚Name der gespeicherten Prozedur‘ erwartet den Parameter ‚@Parametername‘, der nicht angegeben wurde.“ Diese Fehlermeldung kann verwirrend sein, insbesondere wenn Sie überprüft haben, dass die gespeicherte Prozedur über die richtigen Parameter verfügt und diese in Ihrem Code bereitgestellt werden.

Fehlerbehebung

Um dieses Problem zu beheben, lesen Sie Folgendes sorgfältig durch:

  • Überprüfen Sie Parameternamen und Daten Typen: Stellen Sie sicher, dass die Parameternamen und Datentypen in Ihrem Code genau mit denen übereinstimmen, die in der gespeicherten Prozedur definiert sind. Verwenden Sie die gleiche Groß-/Kleinschreibung und vermeiden Sie Tippfehler.
  • Überprüfen Sie den Befehlstyp: Geben Sie den Befehlstyp als StoredProcedure an, um explizit anzugeben, dass Sie eine gespeicherte Prozedur aufrufen. Das Weglassen dieser Einstellung kann zu Unklarheiten über den auszuführenden Befehl führen.
  • Standardwerte deaktivieren: Wenn Standardwerte für Parameter in der gespeicherten Prozedur definiert sind, müssen diese explizit in Ihrem Code angegeben werden. auch wenn Sie keine benutzerdefinierten Werte bereitstellen möchten.
  • Parameterreihenfolge: Die Reihenfolge der Parameter in Ihrem Code muss mit der Reihenfolge übereinstimmen in der gespeicherten Prozedur definiert. Wenn ein Parameter fehlt oder nicht in der richtigen Reihenfolge ist, tritt der Fehler auf.

Beispielcode-Update

Hier ist eine aktualisierte Version Ihres Codes, die den explizit angibt Befehlstyp und Parameterwerte:

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();
    }
}
Nach dem Login kopieren

Durch sorgfältige Prüfung der Parameternamen, Datentypen, Befehlstypen und Parameterreihenfolge können Sie Abhilfe schaffen Beheben Sie diesen Fehler und führen Sie Ihre gespeicherte Prozedur erfolgreich aus.

Das obige ist der detaillierte Inhalt vonWarum löst meine gespeicherte SQL-Prozedur den Fehler „Prozedur oder Funktion ‚...' erwartet Parameter ‚@Parametername', der nicht angegeben wurde' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage