[C#] Problem mit String im SQL

hi tequila,

Danke für den Typ mit der SQL-Injection, ich werde das mal so einbauen...
Und das Beispiel von raiguen hatte ich auch so verbessert wie du es auch grad nochmal gesagt hast. Ich hatte nur einen Syntax Fehler, aber wie ich oben schon geschrieben habe, klappt das auch.

mfg labmx
 
Sofern du wirklich MySQL benutzt (das hast du nirgendwo erwähnt), hier noch mehr Tipps zur Verwendung des MySQL Connectors.

Es gibt bereits eine Methode zum maskieren der Zeichen
C#:
MySqlHelper.EscapeString();

Die brauchst du aber selten, da man wie bereits erwähnt Parameter verwenden sollte. Ich benutze dazu eigentlich ausschließlich folgendes Konstrukt.
Das macht natürlich nur Sinn für Webanwendungen, wo man nur einmal die Datenbank abfragt und dann fertig ist. Bei Denktopanwendungen würde man eher ein Verbindungs-Objekt mehrfach benutzen.

C#:
using(MySqlDataReader reader = MySqlHelper.ExecuteReader(
          "Connection String",
          "SELECT foo, bar FROM tabelle WHERE a=?a AND b=?b;",//Hier können auch mehrere Abfragen stehen.
          new MySqlParameter("?a", 127),
          new MySqlParameter("?b", "Ein ' String ' mit ' Hockkommas."),
    ))
{
    if(!reader.HasRows)
   {
        //Ausgabe
        return;
   }

   while(reader.Read())
   {
         reader.GetInt32(0);
         reader.GetTimeSpan(1);
         //...
   }

    //Falls man mehrere Abfragen hat
    reader.NextResult();
}
 
Moin :)

ähm...sorry für meinen etwas fehlerhaften Code bzw Flüchtigkeitsgehler inform von vergessenen Stringbegrenzer (") :(
Aber hat ja anscheinend doch zum Erfolg geführt :)

Übrigens: das @ für eine Parameterbezeichnung in MySql funktioniert bei mir tatdellos :)
 
Zurück