3 Stimmen

MySqlCommand-Parameter funktioniert nicht

Im folgenden Code, der verwendet wird, um eine Liste von Produkten in einer bestimmten Zeile zu erhalten, gibt der Befehl nur Ergebnisse zurück, wenn ich hart kodiere (verkette) productLine in die SQL. Die Parametersubstitution findet nie statt.

            + "lineName = '@productLine' "                       
            + "and isVisible = 1 ";
        MySqlDataAdapter adap = new MySqlDataAdapter(sql, msc);
        adap.SelectCommand.Parameters.Add("@productLine", productLine);

7voto

Omer van Kloeten Punkte 11472
        + "lineName = ?productLine "                       
        + "and isVisible = 1 ";
    MySqlDataAdapter adap = new MySqlDataAdapter(sql, msc);
    adap.SelectCommand.Parameters.Add("?productLine", productLine);
  1. Entfernen Sie die Apostrophe (').
  2. Ändern Sie @ in ?, was das Präfix von Parametern in MySql-Abfragen ist.

2voto

Rune Grimstad Punkte 34670

Entfernen Sie die Apostrophe (Rechtschreibung?). Das ' um den Parameter. Sie sollten nicht benötigt werden.

0voto

Ian G Punkte 28438

Wie er sagte

+ "lineName = '@productLine' " 

sollte sein

+ "lineName = @productLine "

0voto

Robert Punkte 1815

Das ist richtig, es passiert nie, Sie haben

  • "zeilenname = '@produktlinie' "

Versuchen Sie

  • "lineName = @productLine" stattdessen, da @productLine bereits als String-Typ deklariert ist, werden die Anführungszeichen heimlich hinzugefügt. Sie übergeben jedoch tatsächlich die Zeichenkette @productLine und nicht den Variablenwert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X