Sono in procinto di convertire diverse query che sono state codificate nell'applicazione e create al volo su query parametrizzate. Ho problemi con una sola query particolare, che ha un in
clausola:C# Parameterized Query MySQL con clausola `in`
UPDATE TABLE_1 SET STATUS = 4 WHERE ID IN (1, 14, 145, 43);
Il primo parametro è facile, in quanto è solo un parametro normale:
MySqlCommand m = new MySqlCommand("UPDATE TABLE_1 SET STATUS = ? WHERE ID IN (?);");
m.Parameters.Add(new MySqlParameter("", 2));
Tuttavia, il secondo parametro è un elenco di numeri interi che rappresentano gli ID delle righe che devono essere aggiornati. Come posso passare un elenco di numeri interi per un singolo parametro? In alternativa, come procederesti nell'impostare questa query in modo da non doverla creare completamente ogni volta che la chiami e impedire attacchi di SQL injection?
duplicati di http://stackoverflow.com/questions/337704/parameterizing-a-sql-in-clause (anche se questo è SQL server, invece di mysql , improbabile che sia davvero diverso però) –
La soluzione offerta lì è stata riconosciuta come incredibilmente lenta, sebbene risponda alla seconda metà della mia domanda. – Elie
Ci sono * molte * soluzioni disponibili lì. La risposta accettata non è la più popolare. –