Jestem w trakcie konwersji kilku zapytań, które zostały zakodowane na stałe w aplikacji i zbudowane w locie do sparametryzowanych zapytań. Mam problemy z jednym konkretnym zapytaniu, który ma in
klauzuli:C# Sparametryzowane zapytanie MySQL z `in` klauzula
UPDATE TABLE_1 SET STATUS = 4 WHERE ID IN (1, 14, 145, 43);
Pierwszy parametr jest proste, jak to tylko normalny parametr:
MySqlCommand m = new MySqlCommand("UPDATE TABLE_1 SET STATUS = ? WHERE ID IN (?);");
m.Parameters.Add(new MySqlParameter("", 2));
Jednak drugi parametr jest lista liczb całkowitych reprezentujących identyfikatory wierszy wymagających aktualizacji. Jak przekazać listę liczb całkowitych dla pojedynczego parametru? Ewentualnie, w jaki sposób skonfigurować tę kwerendę, aby nie musieć jej kompletnie budować za każdym razem, gdy ją wywołasz, i zapobiegać atakom SQL injection?
duplikat http://stackoverflow.com/questions/337704/parameterizing-a-sql-in-clause (chociaż to serwer SQL zamiast mysql , ale wydaje się, że jest inaczej). –
Oferowane tam rozwiązanie uznano za niesamowicie wolne, chociaż odpowiada na drugą połowę mojego pytania. – Elie
Dostępnych jest * wiele * oferowanych rozwiązań. Przyjęta odpowiedź nie jest popularna. –