В провайдере MySQL .NET вы можете использовать именованные параметры в синтаксисе:
?parametername
Теперь я пытаюсь создать именованный параметр для параметра, который будет использоваться в списке «IN», например, :
select * from mytable where id in (?ids)
Как я могу использовать именованный параметр с этим, если я использую varchar, он будет добавлять кавычки до и после списка, т. Е .:
Если я передаю значение параметра, используя varchar:
cmd.Parameters.Add("?ids", MySqlDbType.Varchar).Value = ids; // ids is a string which contains the ids separated by commas, e.g. 1, 2, 3 .. etc
запрос будет выполнен так:
select * from mytable where id in ('1, 2 ,3')
Конечно, это выдаст ошибку, как я могу передать именованный параметр без получения кавычек, это способ, которым он должен быть выполнен:
select * from mytable where id in (1, 2 , 3)
Есть ли обходной путь для этого? В настоящее время я использую String.Format (), но хотел бы использовать именованный параметр, возможно ли это как-то?
P.S. Я использую только текстовые операторы, без sproc, поэтому ничего из этого не будет передано sproc (на тот случай, если вы считаете, что это невозможно, поскольку sprocs не принимает массивы)