2013-05-19 4 views
2

Я знаю, что вопрос, как это уже существует в: How to pass parameter to sql 'in' statement?Npgsql заявление «в» передать массив строк

но ответы не помогли мне, поэтому я прошу вашего руководства.

Как передать строковый массив в качестве параметра в оператор Npgsql? Скажем, утверждение выглядит примерно так:

string [] names = new string [] {"one", "two"};

Adapter.SelectCommand.CommandText («Выберите something.name из чего-либо (много внутренних объединений), где something_else.name в (: names) group something.name имеет счетчик (*) = 2;");

ответ

2

Try:

where something_else.name = any(:names) 
+0

Спасибо, что работает чудесно. –

0

Я не знаком с точным синтаксисом npgsql, но могу рассказать вам, как действовать.

Из строкового массива names создайте строку, которая выглядит как «один», «два». Убедитесь, что у вас есть одинарные кавычки.

Затем, когда вы создаете командную строку, не используйте замену переменных. Вместо этого просто конкатенируйте строку, которую вы только что создали между ( и ) после инструкции in. То есть, прямо вставляйте их в строку.

+0

Это было решение, я хотел следовать, но я вроде не хотел утомлять себя конкатенации строк и тому подобное. Спасибо за ответ! –