Heim >Datenbank >MySQL-Tutorial >Warum schlägt meine vorbereitete C#-MySQL-Anweisung fehl und wie kann ich das Problem beheben?

Warum schlägt meine vorbereitete C#-MySQL-Anweisung fehl und wie kann ich das Problem beheben?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-28 11:54:11202Durchsuche

Why is my C# MySQL Prepared Statement Failing, and How Can I Fix It?

Fehlerbehebung bei vorbereiteten Anweisungen in C# mit MySQL

Beim Versuch, eine vorbereitete Anweisung in Ihrem C#-Programm mit MySQL zu verwenden, ist ein Fehler aufgetreten. Obwohl die Konvertierung in eine Standardanweisung die gewünschten Ergebnisse erbracht hat, suchen Sie Hilfe bei der Identifizierung des Problems.

Falscher Code:

cmd = new MySqlCommand("SELECT * FROM admin WHERE admin_username='@val1' AND admin_password=PASSWORD('@val2')", MySqlConn.conn);
cmd.Prepare();
cmd.Parameters.AddWithValue("@val1", tboxUserName.Text);
cmd.Parameters.AddWithValue("@val2", tboxPassword.Text);

Korrekturen:

  • Verwenden Sie „Vorbereiten nach dem Hinzufügen“. Parameter: Im falschen Code wurde der Befehl vor dem Hinzufügen von Parametern vorbereitet. Der richtige Ansatz besteht darin, zuerst Parameter hinzuzufügen und dann Prepare() aufzurufen.
  • Einfache Anführungszeichen aus der Abfrage entfernen: Die Abfrage enthielt einfache Anführungszeichen um die Parameterplatzhalter (@val1 und @val2), was falsch ist. Vorbereitete Anweisungen erfordern Parameterplatzhalter ohne Anführungszeichen.

Korrigierter Code:

cmd = new MySqlCommand("SELECT * FROM admin WHERE admin_username=@val1 AND admin_password=PASSWORD(@val2)", MySqlConn.conn);
cmd.Parameters.AddWithValue("@val1", tboxUserName.Text);
cmd.Parameters.AddWithValue("@val2", tboxPassword.Text);
cmd.Prepare();

Das obige ist der detaillierte Inhalt vonWarum schlägt meine vorbereitete C#-MySQL-Anweisung fehl und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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