На самом деле вы передаете PODGRUPAID
как строку в определении значения этого параметра:
cmd.Parameters.AddWithValue("@PG", "PODGRUPAID");
Это приведет к тому, что будут выбраны только значения с определенным значением PODGRUPAID
, и я обнаружил, что выне могу просто добавить параметры в IN
предложение таким образом.Если вы хотите включить несколько значений, вы можете использовать FIND_IN_SET
вместо предложения IN
:
string podGrupAIDs = "value1,value2,...";
using (MySqlCommand cmd = new MySqlCommand(@"SELECT ROBAID, KATBR, NAZIV,
SLIKA FROM ROBA WHERE FIND_IN_SET(PODGRUPAID, @PG)", con))
{
cmd.Parameters.AddWithValue("@PG", podGrupAIDs);
// Other reading code
}
Если значения поступают из массива или List<T>
(T
= любой тип значения), вы можете присоединиться к ним с помощью string.Join()
перед использованием FIND_IN_SET
:
List<string> values = new List<string>() { "value1", "value2", ... };
using (MySqlCommand cmd = new MySqlCommand(@"SELECT ROBAID, KATBR, NAZIV,
SLIKA FROM ROBA WHERE FIND_IN_SET(PODGRUPAID, @PG)", con))
{
cmd.Parameters.AddWithValue("@PG", string.Join(",", values));
// Other reading code
}