Abfangen von Mysql Zeichen

  • VB.NET
  • .NET (FX) 4.0

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von sandiro.

    Abfangen von Mysql Zeichen

    Hallo an das Forum,

    ich habe eine Form in VB 2010 wo man Benutzer suchen kann mit der herkömmlich Anfrage:

    SQL-Abfrage

    1. SELECT Vorname FROM Benutzer WHERE like "% & txt_suche.text %"


    Das Problem was ich habe, wenn ein User bei der Suchanfrage ein Zeichen eingibt was zur SQL Anfrage gehört z.B.: % oder & oder ' dann bekomme ich eine Fehlermeldung das die Anfrage an die Mysql Datenbank falsch ist.

    Wie kann ich das abfangen wenn ein User solche Zeichen eingibt.

    Danke
    Habunus
    Wenn auf die Zeichen gänzlich verzichtet werden kann, kannst du schon bei der Eingabe ansetzen.:

    VB.NET-Quellcode

    1. Private forbidden As String = "%&'"
    2. Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    3. If forbidden.Contains(e.KeyChar) Then
    4. e.Handled = True
    5. End If
    6. End Sub
    Schau dir mal DB-Paramters an. Damit verhinderst du automatisch, dass Zeichen wie ' zu einem Problem führen...

    Kleines Beispiel (Code ist nur sinngemäss! Code-Beispiele findest du im Internet):

    SQL-Abfrage

    1. SELECT... WHERE Vorname LIKE @Vorname;

    Quellcode

    1. ...Paramters.Add(txtVorname.Text, "@Vorname")