Heim >Datenbank >MySQL-Tutorial >Warum löst meine MySQL-parametrisierte Abfrage in C# eine IndexOutOfBoundsException aus?
Parametrierte Abfragen für MySQL mit C#
Diese Frage befasst sich mit einem häufigen Problem, das bei der Verwendung parametrisierter Abfragen mit MySQL in C# auftritt. Der bereitgestellte Code enthält die relevanten Teile des Codes, die das Problem aufwerfen.
Frage:
Der Codeausschnitt enthält eine parametrisierte Abfrage mit zwei Fragezeichen (?) als Platzhalter für Parameterwerte. Beim Hinzufügen des ersten Parameters tritt beim Benutzer jedoch eine IndexOutOfBoundsException auf. Was stimmt mit dem Code nicht?
Antwort:
Der bereitgestellte Code initialisiert das MySqlCommand-Objekt mit einer parametrisierten Abfrage, aber den Platzhalter-Fragezeichen wird nicht das „@“ vorangestellt. " Zeichen, das für benannte Parameter in MySQL erforderlich ist. Der korrigierte Code lautet wie folgt:
private String readCommand = "SELECT LEVEL FROM USERS WHERE VAL_1 = @param_val_1 AND VAL_2 = @param_val_2;"; public bool read(string id) { level = -1; MySqlCommand m = new MySqlCommand(readCommand); m.Parameters.AddWithValue("@param_val_1", val1); m.Parameters.AddWithValue("@param_val_2", val2); level = Convert.ToInt32(m.ExecuteScalar()); return true; }
In diesem korrigierten Code:
Das obige ist der detaillierte Inhalt vonWarum löst meine MySQL-parametrisierte Abfrage in C# eine IndexOutOfBoundsException aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!