Ich bin dabei, mehrere Abfragen zu konvertieren, die fest in die Anwendung geschrieben wurden und im Handumdrehen zu parametrisierten Abfragen wurden. Ich habe Probleme mit einer bestimmten Abfrage, die eine in
Klausel:C# parametrisierte Abfrage MySQL mit `in` -Klausel
UPDATE TABLE_1 SET STATUS = 4 WHERE ID IN (1, 14, 145, 43);
Der erste Parameter ist einfach, da es nur ein normaler Parameter:
MySqlCommand m = new MySqlCommand("UPDATE TABLE_1 SET STATUS = ? WHERE ID IN (?);");
m.Parameters.Add(new MySqlParameter("", 2));
jedoch der zweite Parameter ist ein Liste von Ganzzahlen, die die IDs der Zeilen repräsentieren, die aktualisiert werden müssen. Wie gebe ich eine Liste von ganzen Zahlen für einen einzelnen Parameter ein? Oder wie würden Sie diese Abfrage einrichten, so dass Sie sie nicht jedes Mal neu erstellen müssen, wenn Sie sie aufrufen, und SQL Injection-Angriffe verhindern können?
Duplizieren von http://stackoverflow.com/questions/337704/parameterizing-a-sql-in-clause (obwohl die SQL Server mysql statt ist (wahrscheinlich nicht wirklich anders) –
Die dort angebotene Lösung wurde als unglaublich langsam erkannt, obwohl sie die zweite Hälfte meiner Frage beantwortet. – Elie
Hier werden * viele * Lösungen angeboten. Die angenommene Antwort ist nicht die beliebteste. –